Как передать параметр npm в angular.json
Я новичок в angular, пытаюсь передать параметр моему процессу сборки angular.
Я хочу создать свое приложение для конкретного клиента, поэтому я использую переменные npm для копирования настроек клиента:
npm run build --client=cocacola
Однако я не могу понять, как передать имя моего клиента (например, cocacola) в angular.js
Это мои скрипты в package.json
"scripts": {
"ng": "ng",
"start": "ng serve",
"prebuild": "cp src/app/clients/$npm_config_client.settings.ts src/app/app.settings.ts",
"build": "ng build",
"test": "ng test",
"lint": "ng lint",
"e2e": "ng e2e"
},
Это часть моего angular.json
"build": {
"builder": "@angular-devkit/build-angular:browser",
"options": {
"outputPath": "dist",
"index": "src/index.html",
"main": "src/main.ts",
"polyfills": "src/polyfills.ts",
"tsConfig": "src/tsconfig.app.json",
"assets": [
"src/favicon.ico",
"src/assets",
{"glob": "**/*", "input" : "src/$npm_config_client/assets", "output": "/assets/"}
],
"styles": [
"src/styles.scss"
],
"scripts": [
"node_modules/jquery/dist/jquery.min.js",
"node_modules/popper.js/dist/umd/popper.min.js",
"node_modules/bootstrap/dist/js/bootstrap.min.js"
]
},
Где я пытаюсь использовать свой --client
в options/assets
для загрузки определенных клиентских активов.
{"glob": "**/*", "input" : "src/$npm_config_client/assets", "output": "/assets/"}
Можно ли это сделать в Angular?
Я также создал по одному angular.json для каждого клиента, но должен быть способ получше.
2 ответа
Я бы посоветовал вам создать несколько проектов, поэтому:
angular.json:
{
"$schema": "./node_modules/@angular/cli/lib/config/schema.json",
"version": 1,
"newProjectRoot": "projects",
"projects": {
"main":{
"architect": {
"build": {
... standard build configuration
}
}
}
"cocacola":{
"architect": {
"build": {
... add cocacola wherever you need here
}
}
}
}
"defaultProject": "main"
}
затем вы можете включить или выключить этот параметр с помощью параметра проекта команды angular, поэтому:
package.json:
"scripts": {
"build": "ng build",
"build:cocacola": "ng build cocacola"
}
npm run build:cocacola
теперь запустит cocacola
проект и npm run build
не работает cocacola
вариант.
Вы пытались использовать «конфигурацию»?
Так:
"configurations": {
"cocacola": {
"assets": [{"glob": "**/*", "input" : "src/cocacola/assets", "output": "/assets/"}],
}}