使用Custom Environment.ts CLI中的app相对路径的值

时间:2016-10-22 16:07:45

标签: angular angular-cli

我开发了一个angular2应用程序 - 没有cli,我现在正试图将它移到cli中,以利用内置的测试和构建过程。

我遇到的问题是我开发的应用程序将部署在Web内容管理系统(即DNN,drupal,joomla等等)中。所以app不能假设它的文件相对于网站目录的根目录而存在。 (我目前通过使用两个不同的配置文件来解决这个问题)

例如,从cli构建dist文件夹中的index.html文件如下所示:

<body>
    <app-root>Loading...</app-root>
    <script type="text/javascript" src="inline.js"></script>
    <script type="text/javascript" src="styles.bundle.js"></script>
    <script type="text/javascript" src="main.bundle.js"></script>
</body>

但我需要它看起来像这样:

<body>
    <app-root>Loading...</app-root>
    <script type="text/javascript" src="/DesktopModules/MyApp/dist/inline.js"></script>
    <script type="text/javascript" src="/DesktopModules/MyApp/dist/styles.bundle.js"></script>
    <script type="text/javascript" src="/DesktopModules/MyApp/dist/main.bundle.js"></script>
</body>

如果我手动进行这些更改,那么该应用就可以运行。 (我只是移动了第一个/根组件,并预计会有更多问题向前发展。)

我很乐意创建一个gulp任务来执行此操作,但希望有一种方法可以通过angular-cli处理这些差异

ONE IDEA:

如果我将自定义环境文件添加到app / environment文件夹(environment.cms.ts),即:

export const environment = {
    production: false,
    envName: 'cms',
    dnnPath: '/DesktopModules/cms/'
};

有没有办法使用环境文件其他设置/选项告诉cli当我使用 ng构建时 - prod --env = cms 在第二个index.html文件脚本路径中添加我在上面显示的路径。

提前致谢

JK

PS:我不确定这是否是最好的地方。我不认为这是一个错误,所以不想在github存储库中创建一个问题。人们在讨论这些类型的事情还有另一种方式吗?

1 个答案:

答案 0 :(得分:0)

好,

如果我更准确地准备文档,我会找到答案 请参阅此link to the docs

它声明:

  

index.html中的基本标记处理

     

构建时,您可以修改基本标记()   index.html with --base-href your-url option。

     

在index.html

中将基本标记href设置为/ myUrl /
ng build --base-href /myUrl/ 
ng build --bh /myUrl/