Angular CLI:在现有命令中添加自定义参数
发布于 2021-02-10 04:45:31
我正在Angular 9中开发一个多租户系统,每个租户都有不同的环境。因此,我需要为不同租户的不同环境生成构建。例如:
ng build --prod --tenant=T1
ng build --configuraton=uat --tenant=T1
ng build --prod --tenant=T2
ng build --configuraton=uat --tenant=T2
我已经为不同的租户设置了不同的配置文件。我需要将此租户名称从命令行参数中提取到代码中,并根据其应用配置。有什么方法可以完成这种整合吗?任何建议都将受到欢迎。谢谢
提问者
Brijesh Borad
被浏览
0
Abhinesh Gour2020-05-11 04:29
我认为在使用angular-cli时无法立即使用此功能。您需要编写npm script或shell script完成此任务。
因此,如果要在 Angular 应用程序中访问这些租户名称。您可以在占位符的script标记内放置一个占位符全局变量,index.html 例如-
...
<script>
window['tenantId'] = 'TENANT_ID'
</script>
...
然后npm script在package.json
...
'replace-tenant-id': 'node replace-tenant-id.js --tenant=T1 && ng build --prod'
...
哪里replace-tenant-id.js包含替换逻辑'TENANT_ID'
const fs = require('fs')
fs.readFile(index.html, 'utf8', function (err,data) {
let formatted = data.replace(/TENANT_ID/g, process.argv[2]);
fs.writeFile(index.html, formatted, 'utf8', function (err) {
if (err) return console.log(err);
});
});
PS-请调试是否存在任何错字或语法错误,因为我尚未尝试运行此代码。您也可以类似的方式容纳配置标志。 Brijesh Borad1970-01-01 08:00:00
谢谢@Abhinesh我根据您的建议做了一些修改。