Я пытаюсь настроить SystemJS для существующего приложения AngularJS + Typescript.
У меня проблема с загрузкой модуля: Когда я использую этот синтаксис:
import module1 from './path-to-module1'
Компилятор TS доволен, но SystemJS не находит этот модуль. После небольшого расследования я нашел это, в документации SystemJS:
System.defaultJSExtensions = true;
// requests ./some/module.js instead
System.import('./some/module');
Круто, теперь и компилятор TS, и SystemJS работают. Но в документации SystemJS говорится:
Обратите внимание, что это свойство совместимости для перехода к использованию явных расширений, и в будущем оно будет объявлено устаревшим.
Итак, я понял, что должен добавить расширение .js
к загрузке моего модуля, например так (удалив флаг 'defaultJSExtensions = true'):
import module1 from './path-to-module1.js'
Теперь SystemJS знает, как загрузить мой модуль, компилятор TS говорит:
Cannot find module './path-to-module1.js'
Как мне заставить ТС понять это? Должен ли я вручную добавлять все свои модули в файл *.d.ts
? Как?
10x!
ИЗМЕНИТЬ
Я нашел этот пост, который, я думаю, должен быть тем, что мне нужно сделать. Я нашел это в своем файле Grunt:
typescript: {
build: {
src: ...,
outDir: '...',
reference: 'reference.ts',
options: {
target: 'es5',
sourceMap: false,
declaration: false,
removeComments: false,
experimentalDecorators: true,
module: 'commonjs'
}
}
}
Но замена commonjs
на system
не помогла..