节点 – 设置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 

或者至less,当我这样做的时候,它仍然作为debugging部署。 我在部署中很可能做错了。

据我所知,你想把你的应用程序部署到一个真正的生产Web服务器。

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

在你的Docker容器中安装一个生产Web服务器(比如Apache或Nginx),并使其服务于这些静态文件。

如果你愿意的话,你也可以使用基于节点的Web服务器,但是如果目标只是为了提供静态文件,我并不认为这一点,Apache或Nginx可能会更有效率。

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

 export const environment = { production: false }; 

 export const environment = { production: true };