Условное включение скрипта в зависимости от среды - PullRequest
0 голосов
/ 28 декабря 2018

Я хотел бы знать, есть ли способ настроить раздел сценариев файла 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 голосов
/ 28 декабря 2018

Вы можете попробовать добавить некоторый код для добавления различных свойств 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, который может быть аккуратнее.

0 голосов
/ 28 декабря 2018

Вы можете добавить массив scripts к вашей конфигурации production внутри angular.json.Это находится в

проектах -> {имя_проекта} -> архитектор-> сборка-> конфигурации-> производство

"projects": {
  {projectName}: {
    "architect": {
      "build": {
        "configurations": {
          "production": {
            "scripts": [
              "./node_modules/jquery/dist/jquery.min.js",
              "./node_modules/slick-carousel/slick/slick.min.js",
              "./src/assets/scripts/Myscript.js"
            ]
          }
        }
      }
    }
  }
}

Это, однако, не выглядит, еслиПеременная окружения имеет значение true, поэтому, если вам нужно больше конфигураций, вы, очевидно, можете добавить ее и туда.

...