Und*_*ade 5 angular-cli angular
是否可以使用 Angular CLI (7.0.5) 为开发和生产提供不同的资产?
对于生产,我想要资产:
"assets": [
"projects/example/src/favicon.ico"
]
Run Code Online (Sandbox Code Playgroud)
对于开发,我想要资产:
"assets": [
"projects/example/src/favicon.ico",
"projects/example/src/assets/development.css"
]
Run Code Online (Sandbox Code Playgroud)
先感谢您。
我找到了一种让它工作的方法,它并不漂亮,但它有效。
在您的 angular.json 文件中,您可以复制当前项目,在我的情况下,我的项目名为“example”。我将复制的项目重命名为“example-dev”。请参阅下面的代码:
{
...
"projects": {
"example": {
"root": "projects/example/",
"sourceRoot": "projects/example/src",
"projectType": "application",
"prefix": "app",
"schematics": {},
"architect": {
"build": {
"builder": "@angular-devkit/build-angular:browser",
"options": {
"outputPath": "dist/example",
"index": "projects/example/src/index.html",
"main": "projects/example/src/main.ts",
"polyfills": "projects/example/src/polyfills.ts",
"tsConfig": "projects/example/tsconfig.app.json",
"assets": [
"projects/example/src/favicon.ico"
],
"styles": [
"projects/example/src/styles.scss"
],
"scripts": []
}
},
"serve": {
"builder": "@angular-devkit/build-angular:dev-server",
"options": {
"browserTarget": "example:build"
}
}
}
},
"example-dev": {
"root": "projects/example/",
"sourceRoot": "projects/example/src",
"projectType": "application",
"prefix": "app",
"schematics": {},
"architect": {
"build": {
"builder": "@angular-devkit/build-angular:browser",
"options": {
"outputPath": "dist/example",
"index": "projects/example/src/index.html",
"main": "projects/example/src/main.ts",
"polyfills": "projects/example/src/polyfills.ts",
"tsConfig": "projects/example/tsconfig.app.json",
"assets": [
"projects/example/src/favicon.ico",
"projects/example/src/assets/development.css"
],
"styles": [
"projects/example/src/styles.scss"
],
"scripts": []
}
},
"serve": {
"builder": "@angular-devkit/build-angular:dev-server",
"options": {
"browserTarget": "example-dev:build"
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
在项目“example”(生产)中,我删除了资产中的“projects/example/src/assets/development.css”行。在项目“example-dev”中,我将服务中的 browserTarget 更改为“example-dev:build”而不是“example:build”
如果我想为开发项目提供服务:
ng serve example-dev -o
Run Code Online (Sandbox Code Playgroud)
如果我想为生产项目提供服务:
ng serve example -o
Run Code Online (Sandbox Code Playgroud)
如果有人有更清洁的解决方案,那么我很乐意听到:)
已编辑
感谢 Karthick Venkat,我找到了另一种使它工作的方法,它更干净。
在您的 angular.json 文件中,您需要添加一个新的开发配置。请参阅下面的代码:
{
"projects": {
"example": {
"root": "projects/example/",
"sourceRoot": "projects/example/src",
"projectType": "application",
"prefix": "app",
"schematics": {},
"architect": {
"build": {
"builder": "@angular-devkit/build-angular:browser",
"options": {
"outputPath": "dist/example",
"index": "projects/example/src/index.html",
"main": "projects/example/src/main.ts",
"polyfills": "projects/example/src/polyfills.ts",
"tsConfig": "projects/example/tsconfig.app.json",
"styles": [
"projects/example/src/styles.scss"
],
"scripts": []
},
"configurations": {
"production": {
"fileReplacements": [{
"replace": "projects/example/src/environments/environment.ts",
"with": "projects/example/src/environments/environment.prod.ts"
}],
"optimization": true,
"outputHashing": "none",
"sourceMap": false,
"extractCss": true,
"namedChunks": false,
"aot": true,
"extractLicenses": true,
"vendorChunk": false,
"buildOptimizer": true,
"assets": [
"projects/example/src/favicon.ico"
]
},
"development": {
"assets": [
"projects/example/src/favicon.ico",
"projects/example/src/assets"
]
}
}
},
"serve": {
"builder": "@angular-devkit/build-angular:dev-server",
"options": {
"browserTarget": "example:build"
},
"configurations": {
"production": {
"browserTarget": "example:build:production"
},
"development": {
"browserTarget": "example:build:development"
}
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
}
如果我想为开发项目提供服务:
ng serve example --configuration=development -o
Run Code Online (Sandbox Code Playgroud)
如果我想为生产项目提供服务:
ng serve example --configuration=production -o
Run Code Online (Sandbox Code Playgroud)
或者
ng serve example -o
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2838 次 |
| 最近记录: |