TS2307 Build: не удается найти модуль 'lodash'
Обновить
Прошу прощения, я не очень ясно объяснил свою проблему. Ошибки, которые я получал, были не во время компиляции приложения Angular через Gulp, а в списке ошибок Visual Studio. С тех пор я смог решить эту проблему (по крайней мере, обходной путь), но я хотел бы поблагодарить всех, кто откликнулся. Мое решение ниже.Я построил приложение Angular4 / TypeScript в PoC Asp.Net основное веб-приложение. Приложение Angular4 было отлично работает в моем приложении PoC, поэтому я скопировал все соответствующие файлы в приложение, которое я разрабатываю (также Asp.Net Core Web App).
Затем я запустил "npm install", чтобы убедиться, что все зависимости были установлены и использовал Gulp для создания .файлы js в моей папке wwwroot / js/. Gulp завершен без ошибок, но теперь Visual Studio сообщает об ошибке ниже и мешает мне построить проект.
TS2307 Build:Cannot find module 'lodash'.
Что еще более запутанно после завершения шаги выше, оригинальное приложение PoC получает ту же ошибку, несмотря на отсутствие изменений, внесенных в проект, что заставляет меня думать, что это скорее экологическая проблема.
Я прочитал аналогичную проблему , где говорится Установить @types/lodash, но это вызывает ошибки дублирования (удаление typings исправляет ошибки дублирования, но вызывает другие ошибки).
The .код ts выдает ошибку:
import * as _ from "lodash";
Изменение на:
import _ from "lodash";
Не делает работа.
Заранее благодарю вас за любую помощь, поскольку в настоящее время я рву на себе волосы, пытаясь понять, почему это больше не работает.
Мои конфигурационные файлы выглядят следующим образом:
Пакет.json
{
"version": "1.0.0",
"name": "aspnet",
"private": true,
"scripts": {
"postinstall": "typings install",
"typings": "typings"
},
"dependencies": {
"@angular/common": "~4.0.0",
"@angular/compiler": "~4.0.0",
"@angular/core": "~4.0.0",
"@angular/forms": "~4.0.0",
"@angular/http": "~4.0.0",
"@angular/platform-browser": "~4.0.0",
"@angular/platform-browser-dynamic": "~4.0.0",
"@angular/router": "~4.0.0",
"angular-in-memory-web-api": "~0.3.0",
"angular2-datatable": "^0.6.0",
"bootstrap": "^3.3.7",
"core-js": "^2.4.1",
"lodash": "^4.17.4",
"moment": "^2.14.1",
"reflect-metadata": "^0.1.3",
"rxjs": "5.0.1",
"systemjs": "0.19.40",
"zone.js": "^0.8.4"
},
"devDependencies": {
"@types/node": "7.0.7",
"gulp": "^3.9.1",
"gulp-clean": "^0.3.2",
"gulp-concat": "^2.6.1",
"gulp-less": "^3.1.0",
"gulp-sourcemaps": "^1.6.0",
"gulp-tsc": "^1.3.1",
"gulp-typescript": "^3.1.6",
"gulp-uglify": "^2.0.0",
"path": "^0.12.7",
"typescript": "^2.1.0",
"typings": "^2.1.0"
}
}
Машинопись.json
{
"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": {
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"module": "commonjs",
"noEmitOnError": true,
"noImplicitAny": false,
"outDir": "../wwwroot/app/",
"removeComments": false,
"sourceMap": true,
"target": "es5",
"moduleResolution": "node",
"typeRoots": [
"./node_modules/@types",
"./node_modules"
],
"types": [
"node"
]
},
"exclude": [
"node_modules"
]
}
2 ответа:
Вы должны установить
@types/lodash
пакет через:npm install --save @types/lodash
Это покажет компилятору Typescript, что такое lodash и какие модули и компоненты предоставляются библиотекой.
Кроме того,
typings
больше не является рекомендуемым подходом. Вы должны удалить и удалитьtypings
, а также переключиться на пакеты@types
, обновив tsconfig до:"typeRoots": [ "node_modules/@types" ],
Наконец, как только вы удалили шрифты, вам нужно будет добавить пакеты
@types
дляcore-js
иjasmine
чтобы включить эти пакеты:npm install --save @types/core-js npm install --save @types/jasmine
Еще раз спасибо всем, кто откликнулся, и я приношу извинения за то, что изначально не был более ясен с фактическим вопросом.
Мои файлы TypeScript компилировались правильно, но Visual Studio продолжала сообщать об ошибках сборки в окне "список ошибок".
Попробовав несколько шагов (те, что перечислены выше, еще много), то, что исправило проблему для меня, было найдено здесь: http://rostacik.net/2015/08/14/how-to-disable-building-of-typescript-files-in-visual-studio-2015/
Короче говоря, откройте свой проект".файл xproj" (может быть ".csproj") с помощью текстового редактора. Найдите теги<PropertyGroup> </PropertyGroup>
и добавьте строку<TypeScriptCompileBlocked>true</TypeScriptCompileBlocked>
. Сохраните файл, а затем разрешите Visual Studio обновлять файлы по мере необходимости. Теперь заново создайте свое приложение.