Существует ли стратегия разрешения типов в стилевом тексте, которая позволила бы мне иметь как локальный импорт не, начиная с косой черты и импорта из node_modules в том же модуле?разрешение в машинописном модуле
С «moduleResolution», установленным на «узел», компилятор не может найти мои локальные модули, со всеми другими параметрами он не видит модули в каталоге node_modules, которые я пытаюсь импортировать.
У меня есть следующий импорт в моем файле:
import {Injectable} from "angular2/core";
import {Logger} from "core/logging/Logger";
"angular2/ядро" расположено в node_modules, "ядро/регистрация/Logger" мой локальный модуль.
Я думаю, что это должно быть возможно, если вы посмотрите на угловой код, они, похоже, имеют оба, т.е. в модуле 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
Более сопутствующая информация:
У меня есть проект, состоящий из двух подпроектов:
- библиотека
- приложение
библиотеки определяет некоторые утилиты, которые затем использует приложение. Мой процесс сборки сначала создает подпроект «library», затем копирует его (скомпилировал js вместе с файлами d.ts) в подпапку «library» в «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){ ... }
}
In 'приложения':
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 имеет какие-либо непубличные поля (они импортированных из двух разных мест, поэтому для машинописных текстов это два разных типа). Вот почему я пытаюсь импортировать свои модули без косой черты с самого начала. Но, может быть, есть другие решения?