#ИМЯ?

Я использую angular4 (4.4.6) и CLI 1.4.3. Я попытался сделать переменные окружения, как в этой статье: https://alligator.io/angular/environment-variables/

Я закончил с 3 файлами: environment.ts

export const environment = {
  production: false,
  restUrl: 'http://localhost:3000/',
  socketUrl: 'http://localhost:2000'
};

environment.prod.ts

export const environment = {
  production: true,
  restUrl: 'http://139.130.4.5:3000/',
  socketUrl: 'http://139.130.4.5:2000'
};

и environment.staging.ts

export const environment = {
  production: true,
  restUrl: 'http://139.130.4.5:3000/',
  socketUrl: 'http://139.130.4.5:2000'
};

Я использую их следующим образом:

import { environment } from '../../environments/environment';
 constructor() {
    this.serverUrl = environment.restUrl;
    console.log('the env is:' this.serverUrl');
  }

и в .angular-cli.json у меня есть следующее:

"environmentSource": "environments/environment.ts",
      "environments": {
        "dev": "environments/environment.ts",
        "prod": "environments/environment.prod.ts",
        "staging": "environments/environment.staging.ts"
      }

и по какой-то причине, когда я запускаю ng build --env=prod он компилируется и все, но в конечном продукте используются переменные enhiorment localHost (dev).

что еще более странно, когда я использую ng server --env=prod он работает отлично, с производственными переменными.

почему это происходит? как я могу построить переменные среды prod или промежуточной среды?

Ответ 1

Используйте команду, подобную этой для сборки Anuglar 6

ng build --prod --configuration=dev

Или используя псевдоним:

ng build --prod --c=dev

Ответ 2

Попробуйте также установить целевую среду:

ng build --target=production --environment=prod
или же
ng build --prod --env=prod
или же
ng build --prod

по умолчанию для https://github.com/angular/angular-cli/wiki/build.

Ответ 3

Это была старая проблема, которая была исправлена в новых версиях cli. Я не могу сказать, если это так, не зная, какие cli и @angular минорные и патч-версии вы используете.

Попробуйте добавить ./ к вашему. angular-cli.json envs.

"environments": {
    "dev": "./environments/environment.ts",
    "prod": "./environments/environment.prod.ts",
    "staging": "./environments/environment.staging.ts"
}

Если это исправление для вас, я рекомендую вам обновить свои зависимости и ваши клики до последней версии и ваших угловых пакетов до последних версий 4.minor.patch, чтобы предотвратить запуск других исправленных ошибок.