разрешение машинописного модуля
Есть ли стратегия разрешения модуля машинописного текста, которая позволила бы мне иметь оба локальных импортане начиная с косой черты и импорта из node_modules в том же модуле?
Если для "moduleResolution" установлено значение "node", компилятор не может найти мои локальные модули, а со всеми другими опциями он не видит модули в каталоге node_modules, который я пытаюсь импортировать.
У меня есть следующий импорт в моем файле:
import {Injectable} from "angular2/core";
import {Logger} from "core/logging/Logger";
«angular2 / core» находится в node_modules, «core / logging / Logger» - мой локальный модуль.
Я думаю, что это должно быть возможно, если вы посмотрите на код angular, они, кажется, имеют и то, и другое. в модуле http.ts:https://github.com/angular/angular/blob/master/modules/angular2/src/http/http.ts
import {Injectable} from 'angular2/core'; //this is local
import {Observable} from 'rxjs/Observable'; //this probably comes from node_modules
Дополнительная справочная информация:
У меня есть проект, состоящий из двух подпроектов:
- библиотека
- приложение
Библиотека определяет некоторые утилиты, которые затем использует приложение. Мой процесс сборки сначала создает подпроект «библиотека», затем копирует его (скомпилированный js вместе с файлами d.ts) в подпапку «библиотека» в «node_modules» приложения, затем компилирует «приложение».
В «библиотеке» у меня есть следующие классы:
//file project/library/jsonparser/JSONParser.ts
class JSONParser {...}
//file project/library/services/ConfigurationService.ts
import {JSONParser} from "../jsonparser/JSONParser"
class ConfigurationService {
constructor(parser: JSONParser){ ... }
}
В «приложении»:
import {JSONParser} from "library/jsonparser/JSONParser" //this comes from node_modules in 'app'
import {ConfigurationService} from "library/services/ConfigurationService" //from node_modules
class AppConfigurationService extends ConfigurationService {
constructor(parser: JSONParser) {
super(parser);
}
}
Это не скомпилируется, как только в JSONParser есть какие-то непубличные поля (они импортируются из двух разных мест, поэтому для машинописи это два разных типа). Вот почему я пытаюсь два импорта моих модулей без косой черты в начале. Но может быть есть другие решения для этого?