Angular :--prod 与 -prod

标签 angular

在 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/

相关文章:

javascript - 删除 Angular-Node-Passport 身份验证中的浏览器历史记录

Angular6 升级问题 : Property 'data' does not exist on type 'Object'

javascript - Angular2(命令行): separate common components and logic-components

OOP/Typescript - 当类构造函数将接口(interface)对象作为参数时,是否可以优化代码?

angular - 如何在 Angular 组件中过滤 @ContentChildren

css - Angular:mat-sidenav 在调整大小时忽略自动调整大小或模式

Angular2 Boolean @Input 属性被设置为字符串 - 绑定(bind)嵌套属性

html - Angular 2/4/6 独立显示和隐藏 div

javascript - 在 Angular 2 中提交发布请求时的奇怪行为

angular - 找不到 ng 命令(@angular/cli 1.0.0)