Как установить разные пути в compilerOptions, в зависимости от переменной env - PullRequest
0 голосов
/ 13 февраля 2019

В моем угловом приложении мне нужно условно загрузить модули в зависимости от среды, в которой работает приложение (dev / prod).В среде разработки он должен указывать на папку libs моего локального проекта, а для производственного - на внешний пакет в папке node_modules.

Я уже пытался использовать троичныйОператор выглядит следующим образом:

import { ModuleA as ModuleAExternal } from '@external/moduleA';
import { ModuleA } from '@moduleA';

@NgModule({
  declarations: [],
  imports: [
    ...
    environment.production ?   ModuleAExternal : ModuleA
  ]
})

Что работает, но когда проект собирается, я не хочу, чтобы меня принуждали импортировать как локальные, так и внешние пакеты.

Так что я ожидаю, что то же самое

import { ModuleA } from '@moduleA';

будет указывать либо на локальную библиотеку lib, либо на внешний пакет npm, в зависимости от среды.Поскольку путь @moduleA задан в файле tsconfig.json для compilerOptions как paths, есть ли способ сделать это разделение там?

1 Ответ

0 голосов
/ 13 февраля 2019

У вас должен быть другой файл среды для development и production сред, оттуда вы можете определить модуль A.Итак, допустим, что они environment.ts и environment.prod.ts (для производства)

в environment.ts вы добавляете

import { ModuleA } from '@moduleA';

export const environment = {
  ...
  ModuleA: ModuleA,
  ...

и в environment.prod.ts

import { ModuleA } from '@external/moduleA';

export const environment = {
  ...
  ModuleA: ModuleA,
  ...

Так что вы можете написать их как

@NgModule({
  declarations: [],
  imports: [
    ...
    environment.ModuleA
  ]
})

Надеюсь, эта помощь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...