2015-04-18 3 views
6

Я хочу, чтобы базовый URL моего API изменился с dev на prod. У пользователя Angular I использовать файл config.json, который был позже введен в приложение, используя grunt-envКак установить константу в aurelia по окружению

+0

Это довольно открытый вопрос, потому что все зависит от того, как вы обслуживаете, и определенно можете быть в соответствии с личным выбором. Я не вижу ничего плохого в том, чтобы поместить его в файл 'json' –

+0

. Я бы не хотел читать этот json-файл снова и снова - было бы разумнее вставить его однажды (где-то) в конфигурацию – amitaibu

+0

Да, это это то, что я имел в виду, просто использовать http-клиент для его чтения один раз должно быть супер простым. –

ответ

2

Если вы хотите «ввести» его только один раз, то что мешает вам использовать простой модуль ES6? Он должен загружаться только один раз с сервера.

Например, вы могли бы что-то подобное в config.js файле: (! Предупреждаю я не пытался запустить его)

export var Config = { 
    path : 'path to find' 
}; 

вы можете использовать модуль в любом месте вам это нужно:

import {Config} from 'config'; 
+0

Да, вводится однократно, но _different_ значения при запуске локально и при запуске на производстве. В Angular + grunt я использовал 'grunt serve' как константы DEV, а' grunt build' - производственные константы. – amitaibu

11

Если вы используете Aurelia CLI, он сгенерирует каталог environments внутри вашего aurelia_project.

В этом каталоге вы можете настроить экологические конфигурации, которые будут скопированы в файл environment.js в вашем каталоге src, на основании флага --env [dev/stage/prod], который вы передадите в свои команды au build/run.

Затем вы можете использовать import environment from './environment' для доступа к своим конфигурационным значениям.

Другой вариант, который вы можете изучить, - это Aurelia Configuration Plugin, который также имеет динамические конфигурации окружающей среды.