"false"
在ng build --prod --aot false
命令中做了什么
我正在开发一个使用ng cli开发的角度4应用程序,因为它是一个企业解决方案,应用程序变得如此庞大,以至于服务和构建需要太多时间。我甚至得到了javascript内存问题,我开始使用以下命令来构建应用程序
ng build --prod --aot false
但我不确定它是如何工作的
所有可用的angular-cli命令都可以找到here。
现在,当我们运行ng build --prod
时,这意味着我们为我们的应用程序指定target:
{
name: 'target',
type: String,
default: 'development',
aliases: ['t', { 'dev': 'development' }, { 'prod': 'production' }],
description: 'Defines the build target.'
},
然后根据指定目标的angular-cli sets default options([email protected]):
// Fill in defaults for build targets
public addTargetDefaults(buildOptions: T): T {
const targetDefaults: { [target: string]: Partial<BuildOptions> } = {
development: {
environment: 'dev',
outputHashing: 'media',
sourcemaps: true,
extractCss: false,
namedChunks: true,
aot: false
},
production: {
environment: 'prod',
outputHashing: 'all',
sourcemaps: false,
extractCss: true,
namedChunks: false,
aot: true
}
};
也可以在docs找到
添加--aot false
时,您将覆盖默认的aot
选项。因此它成为false
。
如果你有一些建设的问题,那么有some thread,其中常见的解决方案运行如下:
的package.json
"scripts": {
"prod": "node --max_old_space_size=4096 ./node_modules/@angular/cli/bin/ng build --prod"
}
但除此之外,我更喜欢做一些重构代码来减少应用程序的大小,并帮助编译器更快地执行。
对于生产版本,AOT默认为true,如果要停用,则可以使用:
ng build prod --no-aot
要么
ng build prod --aot=false
但是使用AOT会在提供模板之前将模板编译为js,因此浏览器会非常快速地加载它们