我正在通过节点部署我的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
或者至少,当我这样做时,它仍然部署为调试。我的部署很可能是我做错了。
答案 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可能会更有效率。