Angular CLI:在现有命令中添加自定义参数

186 阅读1分钟

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 scriptshell script完成此任务。

因此,如果要在 Angular 应用程序中访问这些租户名称。您可以在占位符的script标记内放置一个占位符全局变量,index.html 例如-

...
    <script>
    window['tenantId'] = 'TENANT_ID'
    </script>
...

然后npm scriptpackage.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我根据您的建议做了一些修改。

内容来源 stackoverflow.com/questions/6…