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

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

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

окружающая среда.ТС

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

окружающая среда.подгонять.ТС

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

и тут звонок...

ng build --prod

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

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

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

1 ответов


вам придется использовать APP_BASE_HREF

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

посмотреть угловой doc

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

поскольку CSS/JS не работает с APP_BASE_HREF, вы можете сделать следующее:

на app.деталь.ТС, ввести документ через 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);

    }
  }