我正在为新项目使用Angular 5.2版本。我已使用URL将其部署到DEV位置
http://XX.XX.XX.XX/myDev/app/login
当我运行ng build
命令时
ng build -aot -ec --prod --base-href=/myDev/
现在,我想为多个客户端运行该应用程序,URL将会更改为类似的内容
http://XX.XX.XX.XX/myDev/**Client-X**/app/login
http://XX.XX.XX.XX/myDev/**Client-Y**/app/login
Client-X和Client-Y是IIS中的虚拟目录。
请提出建议,在执行base-href
的同时如何运行此应用程序并对ng build
进行更改
在我的情况下,我将进行一次部署,但不同的URL指向同一软件包。
答案 0 :(得分:2)
您可以通过为每个客户端创建单独的环境文件来使用environment.ts
文件。每个环境都应包含baseURL
const变量,该变量将在运行时代码中提供。
ng build --prod --env=environment-clientA
希望,这会有所帮助
答案 1 :(得分:0)
我正在使用令牌替换来实现。
因此,当我完成生产时,我所有的URL或环境。prod.ts将具有令牌#{CLIENT_URL},依此类推,这意味着已编译/捆绑的文件将具有无效的url或配置设置,这也意味着无需进行修改(替换)我的捆绑包将无法使用。
构建后,我将收到工件,然后每个部署都将替换并放置其自己的属性。
在VSTS中(如果您是天蓝色的用户),扩展名https://marketplace.visualstudio.com/items?itemName=qetza.replacetokens将被替换,但是您可以编写自己的脚本
好处是,在构建解决方案后,您始终将相同版本部署到所需的任何环境。
因此,当您为客户1部署时,您将所有文件#{CLIENT_URL}替换为https://client1.com,以替换具有其他URL的其他客户。