在 Angular 2 中,我相信你必须使用:
enableProductionMode()
我在我的 environment.prod.ts 文件中调用它。
然后我可以调用:
ng b -prod
但在 angular 5+ 中,我可以执行以下操作:
ng b -- --prod --aot
而且我不需要 environment.prod.ts 文件
这两种运行prod的方式有什么区别,是否相同?
最佳答案
不确定你是否做对了。
在 Angular 的所有版本中,prod
标志只是生产模式的简写:它启用 AOT(在以前的版本中,现在默认为 --aot
), 文件名散列, 缩小, uglyfication (--optimization
for all 3), ...
...它使用特定的环境文件。大多数时候该文件被称为 environment.prod.ts
,但这是巧合:要使用的文件在 angular.json
文件中声明。
如果您不需要 .prod.ts
环境文件,这可能意味着您对 production
目标的配置使用了另一个文件,该文件不是 .prod.ts
。但那是因为您的项目,而不是因为命令行。
和enableProdMode()
(您将在main.ts
中找到)仅当您的环境文件包含 production
标志为 true :它不决定您是否处于生产模式,环境文件决定。
最后,关于命令行:在最新版本的 Angular 中,他们切换到 POSIX notation , 这迫使人们使用双连字符 --
来表示单词,并使用单连字符来表示字母(或字母组合)。
-- --prod
(没有任何标志的双连字符)表示法意味着您将这些连字符后面的标志发送到您的原始命令。
NG 对此不是很清楚,请改用 NPM 来理解:
npm run start -- --prod
将运行
ng serve --prod
因为在package.json
文件中,start
的默认命令是
"start": "ng serve",
关于 Angular :--prod 与 -prod,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53174588/