Grunt Typescript не может найти угловое ядро
Вопрос
Почему мой компилятор Grunt Typescript не может найти угловое ядро?
Я думаю, это как-то связано с путями, поэтому компилятор не может найти библиотеки в каталоге node_modules.
ошибка
typescript/add.component.ts(1,25): ошибка TS2307: не удается найти модуль "angular2/core".
Настроить
Задача Gruntfile.js
typescript: {
all: {
src: ['typescript/**/*.ts'],
dest: 'javascript/frontend',
options: {
target: "es5",
module: "system",
moduleResolution: "node",
emitDecoratorMetadata: true,
experimentalDecorators: true,
removeComments: false,
noImplicitAny: false
}
}
машинопись / add.component.ts
import {Component} from 'angular2/core';
@Component({
selector: 'mytest',
template: '<h1>test</h1>'
})
export class AppComponent { }
node_modules
- Включает в себя angular2
- Включает машинопись
Пути к файлам
app -- node_modules
-- typescript
-- app.component.ts
-- Gruntfile.js
-- package.json
Использованные библиотеки / рамки / учебники
- Grunt Typescript Github
- Angular2 5 минут Быстрый старт
1 ответ
Просто сейчас у меня была точно такая же проблема. Запуск grunt в подробном режиме показал содержимое файла конфигурации ts, сгенерированного из конфигурации grunt. Если присмотреться повнимательнее, выяснилось, что опция moduleResolution вообще не используется. Но, с другой стороны, это не было описано на официальной странице машинописного текста.
В любом случае, короткая история: вместо этого я использовал пакет grunt-ts, и все сработало хорошо! Я выложил мой конфиг ниже для вашего удобства:-)
module.exports = function(grunt) {
grunt.initConfig({
ts: {
base: {
src: ['src/**/*.ts'],
dest: 'dist',
options: {
module: 'system',
moduleResolution: 'node',
target: 'es5',
experimentalDecorators: true,
emitDecoratorMetadata: true,
noImplicitAny: false
}
}
}
});
grunt.loadNpmTasks('grunt-ts');
grunt.registerTask('default', ['ts']);
};