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