Есть ли способ условно изменить импорт на основе переменной окружения в [email protected]? Я пытаюсь сделать это таким образом, чтобы не требовать изменений кода в том, как услуги импортируются в код клиента, но при необходимости я могу указать флаг сборки для обмена в макетных сервисах.angular-cli: Условный импорт с использованием переменной окружения
Существует закономерность, я попытался с помощью из this post: структура
Файл:
MyService MyServiceMock.ts MyServiceReal.ts index.ts
И в ваших index.ts, вы можете иметь следующее:
import { environment} from '../environments/environment'; export const MyService = environment.mock ? require('./MyServiceMock').MyServiceMock: require('./MyServiceReal').MyServiceReal;
И в коде клиента, импорт MyService:
import MyService from './myservice/index';
страница загружается, и я могу видеть зависимость получать инъекции при пошаговом через код, однако есть ошибки компиляции (которые я считаю, являются машинопись ошибки) по линиям Cannot find name 'MyService'
.
Этот подход работает хорошо, но имеет недостаток, что макеты услуг включены в производственный пакет – ENargit
Как именно я вставляю поставщика, когда он создан таким образом? Обычно я импортирую из файла, в котором работает служба, но в этом случае он может быть одним из двух файлов. Как сообщить Angular Я хочу, чтобы провайдер предоставлял фабричную функцию? – Valevalorin
@ Валевалорин по токену ('обеспечить'), который является' MyService'. Это то, что вы вводите. –