2017-01-13 5 views
0

Я использую угловой CLI для создания проекта angular2. Я использую json-файл для хранения настраиваемых параметров, таких как конечная точка api и т. Д. CLI объединяет все файлы, поэтому json-файл не разворачивается отдельно в папке dist. Это проблема, поскольку после развертывания невозможно изменить эти параметры. Какова стратегия, обычно используемая для хранения таких настроек в приложениях angualr, которые можно редактировать без повторного развертывания? Нечто похожее на web.config или app.config.Угловой 2: Startegy для сохранения настроек конфигурации

+0

, что о ссылке файл JSON в КДС? –

+0

@federicoscamuzzi у каждого клиента будет свой собственный json и зачем использовать его в cdn, когда файл конфигурации уже является частью приложения? – Andy

ответ

0

Добавление записи файла в активы в angular-cli.json будет скопировать ее, как в папку dist.

"assets": [ "assets", "fav.ico", "settings.json" ]

0

Имейте папку config, которые все ваши среде выполнения конфиги необходим доступ к этой папке, которую нужно добавить, чтобы "assets" массив .angular-cli.config.

Чем вам нужно создать класс, который будет представлять в настройках приложения, вы можете назвать это AppSettings.

Затем измените main.ts иметь что-то вроде этого:

fetch(configUrl, { method: 'get' }) 
.then((response) => { 
    response.json() 
    .then((data: any) => { 
     if (environment.production) { 
     enableProdMode(); 
     }; 
     platformBrowserDynamic([{ provide: AppSettings, useValue: new AppSettings(data.config) }]).bootstrapModule(AppModule); 
    }); 
}); 

configUrl будет содержать ваш конфигурационный файл URL, например /config/dev.json
Таким образом, конфигурация будет выбрана с fetch API и приложением Bootstrap вашего AppSettings будет создан автоматически ,

Вы должны ввести AppSettings в любом месте, где вы хотите его использовать.

Для получения более подробной информации проверка этого answer

Смежные вопросы