我喜欢Angular CLI并将其用于我的所有Angular项目。但是我经常遇到一个用例,这个非常糟糕的官方文档没有帮助。所以冒着将一个问题捆绑得过多的风险,这是我最迫切的问题:
UglifyJS
。ng build --app
“指定要使用的应用名称或索引。”那个小句子就是所有文件的总和。我有一个案例,一个环境有一个index.html
而另一个环境有index.html
。我认为这可能是它,但似乎没有。有谁知道如何使用它,或有条件地提供不同的index.html
?dev
和prod
会一如既往,但devextra
和prodextra
会部署一个额外的文件(有点像scripts
在{.angular-cli.json
中有条件地添加内容1}}。积分2& 3用于与其他工具集成。我目前的解决方法是手动编辑index.html。
答案 0 :(得分:1)
我找到了第2项和第2项的答案。第一名仍然是一个谜。
以下示例.angular-cli.json
显示了如何执行此操作:
{
"$schema": "./node_modules/@angular/cli/lib/config/schema.json",
"project": {
"name": "project-name"
},
"apps": [
{
"root": "src",
"outDir": "dist",
"assets": [
"assets",
"favicon.ico"
],
"index": "index.html",
"main": "main.ts",
"polyfills": "polyfills.ts",
"test": "test.ts",
"tsconfig": "tsconfig.app.json",
"testTsconfig": "tsconfig.spec.json",
"prefix": "app",
"styles": [
"styles.scss"
],
"scripts": [
"somescript.js"
],
"environmentSource": "environments/environment.ts",
"environments": {
"dev": "environments/environment.ts",
"prod": "environments/environment.prod.ts"
}
}, {
"root": "src",
"outDir": "../completely/different/folder",
"assets": [
"assets",
"favicon.ico"
],
"index": "otherindex.html",
"main": "main.ts",
"polyfills": "polyfills.ts",
"test": "test.ts",
"tsconfig": "tsconfig.app.json",
"testTsconfig": "tsconfig.spec.json",
"prefix": "app",
"styles": [
"styles.scss"
],
"scripts": [
"somescript.js"
],
"environmentSource": "environments/environment.ts",
"environments": {
"dev": "environments/environment.extra.dev.ts",
"prod": "environments/environment.extra.prod.ts"
}
}
],
/* These are empty for brevity */
"e2e": {},
"lint": [],
"test": {},
"defaults": {}
}
所以这个有点大,大部分都是重复的,所以请允许我给你一个游览。
apps
数组实际上有两个对象。通常只有一个,我不确定何时添加了多个应用程序支持,但这就是--app
命令行的用途。因此ng build --app 0
使用第一个对象进行配置,ng build --app 1
使用第二个对象。与ng serve
相同。environment
文件。另外,请注意这两个配置部署了两个不同(并且完全可信)的脚本文件。实际上,你可以在这里做出很多改变,令人印象深刻。一些陷阱:
environmentSource
。然后它似乎从第一个配置默认为dev
环境。deployUrl
仅适用于命令行,并且baseUrl
根本无法在config中指定。可能还有其他人。root
,但我真的不明白为什么您不会做一个完全不同的应用。将这超出其设计范围可能是不明智的。我目前的想法是,我将使用具有多个配置的单个.angular-cli.json
,然后创建批处理文件以包裹我的ng build
/ serve
来电。