我的简化配置如下。我使用的是 Angular 16。我了解Angular 中的angular.json
默认值是。outputHashing
none
鉴于以下配置,如果我执行:
ng build --configuration=development
将会outputHashing: all
被应用还是将会outputHashing: none
被应用?
这篇文章似乎没有太清楚地阐明立场。
{
"projects": {
"myproject": {
"architect": {
"build": {
"options": {
"outputHashing": "all"
},
"configurations": {
"production": {
"outputHashing": "media"
},
"development": {
}
}
},
"serve": {},
"extract-i18n": {},
"test": {},
"lint": {}
}
}
}
}
考虑将
configurations
作为配置的覆盖options
,将作为基本选项。development
配置在您的情况下只是一个空对象,因此它不会覆盖任何内容。这里基本选项开始发挥作用。只有当设置中没有任何内容在基本选项中也没有覆盖时,才会使用默认值。在您的场景中,outputHashing: "all"
将与配置一起使用,development
因为它是在基本选项中定义的,并且不会被覆盖。注意:不幸的是,我没有可靠的来源来支持这一点,但根据我的经验,这就是它的工作方式。