ПЕРВОЕ / DIRTY SOLUTION
Вы можете в основном использовать declare var myConstant
.
Он сообщает вашему компилятору, что переменная где-то существует, поэтому не выдает никакой ошибкиво время компиляции.
Затем вы загружаете js-файл, инициализирующий myConstant
, в тэг index.html <head>
(он должен быть загружен ДО всех ваших js-приложений) из любого источника, удобного для вас т.е. удаленный сервер через тег <script>
.
Пример:
config.js
, размещенный на вашем сервере:
var myConstant = {appCode : whateverYouWant }
Загружен в вашем приложении втег head:
<script src="//yourserver.com/config.js"></script>
Используется в вашем компоненте следующим образом:
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { MyTestModule } from '@my-test-module';
import { AppComponent } from './app.component';
declare var myConstant;
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
MyTestModule.forRoot(myConstant.appCode)
],
providers: [],
bootstrap: [AppComponent]
})
ВТОРОЕ / ЧИСТОЕ РЕШЕНИЕ
Использование environment.ts
иenvironment.prod.ts
файлы в папку "/src/environment"
, содержащую переменные для каждой среды.
Пример:
environment.prod.ts
export const environment = {
production: true,
appCode: WHATEVERYOUWANT
};
Загружается в ваш компоненткак это:
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { MyTestModule } from '@my-test-module';
import { AppComponent } from './app.component';
import {environment} from "./environments/environment"
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
MyTestModule.forRoot(environment.appCode)
],
providers: [],
bootstrap: [AppComponent]
})