Как обслуживать приложение Angular в режиме dev? - PullRequest
0 голосов
/ 30 апреля 2018

Согласно нескольким источникам (например, этот ), я должен иметь возможность переключаться между различными средами, указав имя следующим образом.

ng serve --environment=dev

Если я правильно понимаю настройку, мой файл .angular-cli.json указывает на environment / environment.ts для значения флага dev и в environment / environment.prod.ts для значения prod .

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

Проблема в том, что когда я выполняю тот, который указан в первом примере, я все еще вижу версию prod. (Я распечатываю весь объект environment в конструкторе компонента, к которому получен доступ.) Я даже пытался добавить флаг target , хотя я довольно уверен, что это только уровень оптимизации, пока работает сборка. Без разницы ...

ng serve --environment=dev --target=development

Что мне не хватает и как я могу заставить команду serve запускать с environment / environment.ts ?

редактировать

Содержимое main.ts выглядит следующим образом.

import { enableProdMode } from "@angular/core";
import { platformBrowserDynamic } from "@angular/platform-browser-dynamic";

import { AppModule } from "./app/app.module";
import { environment } from "./environments/environment";

if (environment.production) {
  enableProdMode();
}

platformBrowserDynamic().bootstrapModule(AppModule)
  .catch(err => console.log(err));

Ответы [ 2 ]

0 голосов
/ 30 апреля 2018
 ng serve -env=dev

Это будет использовать значение ключа "dev" в environments/environment.ts

Если это не работает для вас, убедитесь, что в environment.ts есть production: false в environment.ts, вот так ...

export const environment = {
    production: false
};

Также возможно, что вы включаете режим prod где-то в main.ts

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

0 голосов
/ 30 апреля 2018

У меня есть в angular-cli.json эта конфигурация:

  "environmentSource": "environments/environment.ts",
  "environments": {
    "dev": "environments/ava-mec/environment.dev.ts",
    "prod": "environments/ava-mec/environment.prod.ts",
    "hmg": "environments/ava-mec/environment.hmg.ts"
  },

А в моем package.json этом scripts наборе:

"start-ava-mec-prod": "ng serve --app=ava-mec --environment=prod",
"start-ava-mec-hmg": "ng serve --app=ava-mec --environment=hmg",
"start-ava-mec-dev": "ng serve --app=ava-mec --environment=dev",
"build-ava-mec-local": "ng build --prod --app=ava-mec --environment=hmg --base-href './' --verbose && rsync dist/ /Library/WebServer/Documents/avamec/ --recursive --delete --exclude=.git*  --verbose",

Как я вижу, разница в том, что я использую конфигурацию приложения (и использую --app для определения используемого приложения). И по команде build я использую --prod для включения компилятора AOT. Для меня это работает нормально. Переменные, установленные в моем файле окружения, становятся доступными для моего кода.

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