我有一个可以用于不同客户的应用程序,所以我需要以不同的方式对其进行个性化,具体取决于客户。
我基本上需要做的是在angular-cli.json文件中启动ng build并不总是使用相同的设置,有没有办法:
1)当我启动构建时更改angular-cli.json文件?
2)传递一个变量来改变'styles'和'dist'字段?
现在我被迫记住,每次我修改我的应用程序,为每个客户更改文件并进行构建,我想编写一个脚本,使所有构建级联,但如果我无法根据构建个性化angular-cli.json。
我找到了这个link但是如何使用它?我在文档here中搜索过但我不明白,我是否必须在anguylar-cli.json的app数组下添加一个声音?或者我必须制作另一个与应用程序类似的数组?
这是我在应用程序下的内容:
{
"name":"app1",
"root": "src",
"outDir": "dist",
"assets": [
"fonts",
"images",
"assets",
"favicon.ico"
],
"index": "index.html",
"main": "main.ts",
"test": "test.ts",
"tsconfig": "tsconfig.json",
"prefix": "app",
"mobile": false,
"styles": [
"paper.css",
"styles.css",
"style_app1.css"
],
"scripts": ["../node_modules/chart.js/dist/Chart.bundle.min.js"],
"environments": {
"source": "environments/environment.ts",
"dev": "environments/environment.ts",
"prod": "environments/environment.prod.ts"
}
},
{
"name":"app2",
"root": "src",
"outDir": "dist2",
"assets": [
"fonts",
"images",
"assets",
"favicon.ico"
],
"index": "index.html",
"main": "main.ts",
"test": "test.ts",
"tsconfig": "tsconfig.json",
"prefix": "app",
"mobile": false,
"styles": [
"paper.css",
"styles.css",
"style_app2.css"
],
"scripts": ["../node_modules/chart.js/dist/Chart.bundle.min.js"],
"environments": {
"source": "environments/environment.ts",
"dev": "environments/environment.ts",
"prod": "environments/environment.prod.ts"
}
}
说它不起作用是因为在dist2中我没有找到任何东西,当我启动构建时--app app2
答案 0 :(得分:2)
文件.angular-cli.json有一个属性应用程序,这是一个可以有多个应用程序的数组。默认情况下,ng只在那里生成一个条目,例如:
{
"root": "src",
"outDir": "dist",
"assets": [
"assets",
"favicon.ico"
],
"index": "index.html",
"main": "main1.ts",
"polyfills": "polyfills.ts",
"test": "test.ts",
"tsconfig": "tsconfig.app.json",
"testTsconfig": "tsconfig.spec.json",
"prefix": "app",
"styles": [
"styles.css"],
"scripts": [],
"environmentSource": "environments/environment.ts",
"environments": {
"dev": "environments/environment.ts",
"prod": "environments/environment.prod.ts"
}
},
上面的应用程序部分定义了一个包含引导代码的main1.ts应用程序。如果你在同一个项目中有另一个应用程序,其中bootstrap代码在main2.ts中,你需要重复上面的配置,但是使用" main" =" main2.ts"。现在你有一个包含两个应用程序的数组,你可以使用相应的数组索引构建其中一个,例如:
ng build --app 0
或
ng build --app 1
您还可以添加一个属性" name"到应用程序配置,例如
"apps": [
{ "name":"app1",
"root": "src",
"outDir": "dist",
...
并按如下方式运行构建:
ng build --app app1