Я написал модуль es6 с некоторыми экспортированными функциями и загрузил его в npm (загрузил его перенесенный код es5).
Я пытаюсь использовать этот пакет в проекте Angular, который использует SystemJS в качестве загрузчика модулей (это гибридное приложение AngularJS 1.5 и Angular 5.2 в середине процесса миграции).
Я добавил в systemjs.config.js новую библиотеку, аналогично тому, как я добавил rxjs (направляя его по его пути в node_modules).
Но при попытке использовать одну из общедоступных функций модуля IntelliJ не знает, откуда ее импортировать (как он знает, например, при использовании функции noop для rxjs), и если я добавлю оператор импорта вручную (import {func-name } из 'package-name'), то компилятор TypeScript выдает ошибку.
Какие-либо предложения? Мне нужно что-то изменить в модуле, который я опубликовал в npm, или в способе, которым я пытаюсь использовать функции модуля в Angular?
Спасибо.
Угловой код
systemjs.config.js:
map: {
'app': './',
// angular bundles
'@angular/core': 'npm:@angular/core/bundles/core.umd.js',
'@angular/common': 'npm:@angular/common/bundles/common.umd.js',
'@angular/compiler': 'npm:@angular/compiler/bundles/compiler.umd.js',
'@angular/platform-browser': 'npm:@angular/platform-browser/bundles/platform-browser.umd.js',
'@angular/platform-browser-dynamic': 'npm:@angular/platform-browser-dynamic/bundles/platform-browser-dynamic.umd.js',
'@angular/http': 'npm:@angular/http/bundles/http.umd.js',
'@angular/router': 'npm:@angular/router/bundles/router.umd.js',
'@angular/forms': 'npm:@angular/forms/bundles/forms.umd.js',
'@angular/upgrade/static': 'npm:@angular/upgrade/bundles/upgrade-static.umd.js',
// other libraries
'rxjs' : 'npm:rxjs',
.
.
'my-package' : 'npm:my-package/dist/my-package.js'
},
my-component.component.ts:
import { func } from 'my-package';
.
.
.
ngAfterContentInit() {
func();
}
Ошибка компилятора TypeScript:
error TS2307: Cannot find module 'package-name'