-1

我正在将自定义 webpack 构建的 Angular 应用程序转换为 Angular CLI,一切似乎都运行良好,但我不知道如何开始ng serve工作。我在这个 Angular 工作空间中有大约 11 个应用程序,一个主应用程序与其他应用程序通信,例如登录应用程序。运行ng serve main起初工作正常,应用程序启动,但随后立即重定向到localhost:4200/login进行身份验证,但问题是我的 IIS 应用程序正在运行localhost:9000,因此当它尝试获取登录应用程序时出现错误Cannot GET /login

我的问题是:如何设置ng serve以使用所有这些应用程序?

所有源代码都已构建到 dist 文件夹,因此/dist/login可以使用。我尝试了 serve 命令的各种参数,并尝试从我的 IIS 服务器正在使用的同一端口提供服务,但在这种情况下,我得到了EACCES: permission denied错误。我在 IIS 方面不是最有经验的,但如果问题可以在该领域得到解决,我可以从高级开发人员那里获得帮助。

这可以用lite-server解决吗?

真的任何输入都会有所帮助,我什至不知道在哪里看。谢谢!

4

1 回答 1

1

在尝试了 lite-server 并阅读了更多文档后,我偶然发现了代理到后端服务器。此配置选项允许您为发往另一个端口上的后端服务器的任何请求设置代理,并将它们转发到正确的地址。

只需设置一个proxy.conf.json文件,告诉 webpack-dev-server 将流量重定向到哪里:

{
  "/api": {
    "target": "http://localhost:3000",
    "secure": false
  }
}

然后在您angular.json设置的服务选项中查找您的代理文件:

...
"architect": {
  "serve": {
    "builder": "@angular-devkit/build-angular:dev-server",
    "options": {
      "browserTarget": "your-application-name:build",
      "proxyConfig": "src/proxy.conf.json"
    },
...

对外部文件的请求现在将正确地路由到在端口 3000 上运行的后端服务器!

于 2019-08-07T23:46:08.610 回答