节点 - 设置angular-cli环境

时间:2017-04-03 19:43:52

标签: node.js angular angular-cli

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

有没有办法从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

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

2 个答案:

答案 0 :(得分:1)

您可以进入environment.ts文件并更改

export const environment = {
  production: false
};

export const environment = {
  production: true
};

答案 1 :(得分:1)

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

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

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

如果需要,您也可以使用基于节点的Web服务器,但如果目标仅仅是提供静态文件,我真的没有看到这一点,Apache或Nginx可能会更有效率。