angular2: Не удается найти модуль '@angular/core'
Я последовал за угловым быстрым запуском, чтобы создать свой проект, и все работает нормально, но моя командная строка tsc -w продолжает рассказывать мне:
app/components/company/company.ts(1,36): error TS2307: Cannot find module '@angular/core'.
app/components/company/company.ts(5,22): error TS2307: Cannot find module '@angular/router'.
app/components/mission/mission.ts(1,36): error TS2307: Cannot find module '@angular/core'.
app/components/mission/mission.ts(3,22): error TS2307: Cannot find module '@angular/router'.
И есть много другой такой линии. Тем не менее, все скомпилировано успешно, и мое приложение работает нормально, но очень неприятно иметь все эти предупреждения/ошибки, как реальные ошибки, что-то теряется посреди них.
Я использую Angular2 rc1, TypeScript 1.8.10, WebStorm EAP (хотя я не использую систему компиляции WebStorm TypeScript, я полагаюсь на открытый терминал с командной строкой tsc -w ".
Я проверил другой вопрос, связанный с этим на SO, но я не нашел ничего, что действительно помогло мне.
Обновить
Вот мой файл tsconfig.json:
{
"compilerOptions": {
"target": "es5",
"sourceMap": true,
"experimentalDecorators": true,
"emitDecoratorMetadata": true,
"module": "system",
"noImplicitAny": false,
"outDir": "js",
"rootDir": "app"
},
"exclude": [
"node_modules",
"typings/main",
"typings/main.d.ts"
]
}
Ответы
Ответ 1
Вы должны использовать атрибут moduleResolution
для node
:
{
"compilerOptions": {
"target": "es5",
"sourceMap": true,
"experimentalDecorators": true,
"emitDecoratorMetadata": true,
"module": "system",
"moduleResolution": "node", // <-----
"noImplicitAny": false,
"outDir": "js",
"rootDir": "app"
},
"exclude": [
"node_modules",
"typings/main",
"typings/main.d.ts"
]
}
Ответ 2
Сначала вам нужно добавить типизацию на глобальном уровне, как показано ниже.
npm install -g typings
Затем создайте typings.json, используя команду ниже.
typings init
Вставить под кодом в typings.json
{
"name": "ng2-application",
"globalDependencies": {
"core-js": "registry:dt/core-js#0.0.0+20160725163759",
"jasmine": "registry:dt/jasmine#2.2.0+20160621224255",
"node": "registry:dt/node#6.0.0+20160909174046"
}
}
Теперь вам нужно добавить код ниже в tsconfig.json
"compilerOptions": {
"moduleResolution": "node"
}
После выполнения вышеуказанных шагов вы сможете получить определения на F12.