【问题标题】:Node - set angular-cli environmentNode - 设置 angular-cli 环境
【发布时间】:2017-04-04 04:19:21
【问题描述】:

我正在通过节点部署我的 angular-cli 应用程序。我使用npm start,而不是ng serve --prod

有没有办法从 npm 实现 --environment=prod 设置,以便它使用 environment.prod.ts 而不是 environment.ts

我的 Dockerfile:

FROM node
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
COPY package.json /usr/src/app
RUN npm install
COPY . /usr/src/app
EXPOSE 4200
CMD ["npm", "start"]

package.json 的顶部:

{
  "name": "asgard2",
  "version": "0.0.0",
  "license": "MIT",
  "scripts": {
    "ng": "ng",
    "start": "ng serve --host 0.0.0.0",
    "build": "ng build",
    "test": "ng test",
    "lint": "ng lint",
    "e2e": "ng e2e"
},
[...] 

要开始生产,我可以运行:

ng serve --prod

但我做不到:

npm start --prod

或者至少,当我这样做时,它仍然被部署为调试。我很可能在我的部署中做错了什么。

【问题讨论】:

  • 不清楚。你的 npm start 脚本是做什么的?
  • @JBNizet:一切都是 angular-cli 设置的默认设置,但您提出了一个很好的观点。我可能应该先构建,然后部署和服务。
  • 啊,所以你想让 npm start 做ng serve --prod 而不是默认的ng serve?只需编辑您的 package.json 并在 ng serve 之后添加 --prod
  • @JBNizet:好吧。我实际上想避免使用 NG Live Development Server,因为警告不要在生产中使用它,所以我试图通过 docker 将 angular-cli 应用程序部署到 Node.js。由于那里没有可用的“ng”,我想以另一种方式启动它。一路上可能有一些我不明白的地方。很多新东西要学。
  • 因此您希望将应用程序部署到真实的生产 Web 服务器。使用ng build --prod。这会在 dist 目录下生成一组静态文件,任何能够提供静态文件的 Web 服务器都可以提供这些文件。在您的 docker 容器中安装生产 Web 服务器(例如 Apache 或 Nginx),并使其为这些静态文件提供服务。如果需要,您也可以使用基于节点的 Web 服务器,但如果目标只是提供静态文件,我真的不明白这一点,Apache 或 Nginx 可能会更有效。

标签: node.js angular angular-cli


【解决方案1】:

据我了解,您希望将应用程序部署到真实的生产 Web 服务器。

使用ng build --prod。这会在dist 目录下生成一组静态文件,任何能够提供静态文件的 Web 服务器都可以提供这些文件。

在您的 docker 容器中安装生产网络服务器(例如 Apache 或 Nginx),并使其为这些静态文件提供服务。

如果您愿意,您也可以使用基于节点的 Web 服务器,但如果目标只是提供静态文件,我真的不明白这一点,Apache 或 Nginx 可能会更有效。

【讨论】:

    【解决方案2】:

    你可以进入你的 environment.ts 文件并改变

    export const environment = {
      production: false
    };
    

    export const environment = {
      production: true
    };
    

    【讨论】:

    • 但是在不生产的时候我会得到相反的结果。我想我可以在部署期间将 environment.ts 的内容复制到 environment.prod.ts。
    猜你喜欢
    • 2018-02-19
    • 2015-07-31
    • 2018-12-25
    • 1970-01-01
    • 1970-01-01
    • 2015-12-13
    • 2017-12-08
    • 2019-08-24
    • 2021-08-14
    相关资源
    最近更新 更多