我开发了一个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处理这些差异
如果我将自定义环境文件添加到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存储库中创建一个问题。人们在讨论这些类型的事情还有另一种方式吗?
答案 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/