Как использовать переменную окружения в синтаксисе импорта? - PullRequest
0 голосов
/ 25 января 2019

Я использую угловой v5. Я хочу сделать что-то вроде

import { OwnedSetABI } from 
`../constant/${environment.envName}/OwnedSetContractABI`;

У меня есть файл OwnedSetContractABI в другой папке, и я хочу использовать его в зависимости от среды. например, для dev env путь OwnedSetABI будет «../constant/dev/OwnedSetContractABI», для рабочего env путь OwnedSetABI будет «../constant/production/OwnedSetContractABI». Но ES6 не позволял использовать переменные в синтаксисе импорта. Как я могу достичь этого сценария?

Ответы [ 2 ]

0 голосов
/ 25 января 2019

я думаю, что вы можете определить несколько конфигураций внутри вашего angular.json

     "production": {
     "fileReplacements": [
            {
              "replace": "src/environments/environment.ts",
              "with": "src/environments/environment.prod.ts"
            }
          ]
     },
     "dev": {
         "fileReplacements": [
            {
              "replace": "src/environments/environment.ts",
              "with": "src/environments/environment.dev.ts"
            }
          ]

     }

и в каждом файле среды вы можете импортировать определенный OwnedSetABI из разных каталогов environment.prod.ts

export * from './prod/OwnedSetContractABI';

, поэтому вы просто импортируете этот путь

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

и запускаете build и обслуживаете нужную конфигурацию dev или prod

ng build --env=production

или

ng serve --env=production
0 голосов
/ 25 января 2019

Проверьте ваши angular.json и ctrl + f на предмет "fileReplacements", и там вы должны увидеть ответ, который вы ищете.

Короче говоря, вы указываете angular на что заменить environment.ts, в зависимости от среды.

Любые переменные, зависящие от env, помещают их в те файлы среды с тем же именем переменной, и они автоматически заменяются при обработке или построении .., а затем просто импортируют их в environment.ts (ту, котораяподлежит замене)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...