根据角度模式

时间:2017-11-20 23:13:58

标签: angular angular-cli

方案

我需要在页面布局的<head>顶部添加分析脚本标记。脚本需要根据我们是在生产还是开发中而有所不同,因此我们不会通过QA测试来破坏生产分析。

我读到现在分析标签不再需要放在<head>中了。通常情况下会没问题,但在这个项目中如果有任何问题并且客户发现我们没有遵循文档,那么我们就会因为没有正确实现它而受到指责。因此,我不能等到客户端角度已加载以检查环境变量以使用js进行切换,因为那样为时已晚。我需要在浏览器加载页面之前的构建步骤中完成此操作。

临时解决方案

我的临时解决方案是创建第二个index.html(index-dev.html),并在使用此新文件的angular-cli.json文件中使用第二个应用程序。这看起来类似于

"apps": [
{
  "name": "myApp",
  "index": "index-prod.html"
   ...
},
{
  "name": "myApp-dev",
  "index": "index-dev.html"
   ...
}]

然后,当我为dev构建时,我会运行

ng build --app=myApp-dev

和prod

ng build --prod

我不喜欢这个解决方案,因为

  1. 如果我需要进行更改,它会添加两个索引文件来维护
  2. 我现在有两个&#34;应用程序&#34;当我真的只需要一个,更多的东西要记录,并有机会犯错误等等。
  3. 如果我正在增加另一位开发人员,并且他们在此方案中运行ng build,他们将获得生产分析脚本。我可以在数组中切换应用程序的顺序,因此默认情况下会生成dev,但现在我处于ng build --prod使用开发分析脚本构建的情况。
  4. 主要问题

    1. 有没有办法对索引文件中的<script>元素进行标记,并根据环境进行交换?
    2. 如果#1不可能,有没有办法让angular cli(或webpack或其他工具)使用--prod参数处理显示哪个索引文件?例如ng build将提供index-dev.html,ng build --prod将提供index-prod.html。

0 个答案:

没有答案