Подтвердить что ты не робот

Установите base href из переменной среды с помощью ng build

Кто-нибудь знает, как это сделать с помощью angular -cli? Я хотел бы иметь возможность хранить путь baseHref в переменной среды в /src/environments/environment.x.ts и на основе выбранного значения во время сборки, иметь возможность установить путь baseHref.

Что-то вроде этого:

environment.ts

export const environment = {
  production: false,
  baseHref: '/'
};

environment.prod.ts

export const environment = {
  production: true,
  baseHref: '/my-app/'
};

А затем вызовите...

ng build --prod

... и показать мой /dist/index.html файл <base href="/my-app/">.

Я подумал, может быть, если бы я назвал свою переменную среды такой же, как вариант сборки --base-href, используемый в команде build, которую cli мог бы возьмите его, но там не кубик.

Есть ли способ ссылаться на переменную среды из командной строки? Что-то вроде ng build --base-href environment.baseHref?

4b9b3361

Ответ 1

Вам нужно будет использовать APP_BASE_HREF

@NgModule({
  providers: [{provide: APP_BASE_HREF, useValue: environment.baseHref }]
})
class AppModule {}

См. angular doc

ИЗМЕНИТЬ

Так как CSS/JS не работает с APP_BASE_HREF, вы можете сделать это:

В app.component.ts введите ДОКУМЕНТ через import {DOCUMENT} from "@angular/platform-browser";

constructor(@Inject(DOCUMENT) private document) {
}

Затем на ngOnInit()

ngOnInit(): void {
    let bases = this.document.getElementsByTagName('base');

    if (bases.length > 0) {
      bases[0].setAttribute('href', environment.baseHref);

    }
  }