条件脚本包含取决于环境

时间:2018-12-28 08:56:38

标签: angular angular7 angular-cli-v7

我想知道是否有一种方法可以根据环境来配置angular.json文件的脚本部分。

仅当我在生产环境中时,我才想包括一个特定的脚本(Myscript.js)。

"scripts": [
          "./node_modules/jquery/dist/jquery.min.js",
          "./node_modules/slick-carousel/slick/slick.min.js",
          "./src/assets/scripts/Myscript.js"
        ]

我在文档中找不到任何有关此的内容。有可能吗?

2 个答案:

答案 0 :(得分:5)

您可以将constructor(private countryService: SelectedcountryService) { } ngOnInit() { this.countryService.country.subscribe( (data) => { this.countrySelect = data; console.log(this.countrySelect); }); } 数组添加到scripts中的production配置中。位于

  

projects-> {projectName}-> architec-> build-> configurations-> production

angular.json

但是,如果环境变量设置为true,则不会显示此内容,因此,如果您有更多需要此配置的配置,则显然也可以在其中添加它。

答案 1 :(得分:0)

在不同的环境中运行时,您可以尝试添加一些代码以添加不同的Google Analytics(分析)属性。像这样:

import { environment } from './environments/environment';

if (environment.production) {
  document.write('<script type="text/javascript">// ProductionAnalyticsCodeHere</script>');
} else if (environment.staging) {
  document.write('<script type="text/javascript">// StagingAnalyticsCodeHere</script>');
}

如果在main.ts中执行此操作,则代码会尽早添加到网页中。

还可以将document.write()直接放到更整洁的environment.prod.ts中。