Зависимости, не установленные в Visual Studio
В настоящее время я обновляю свой ASP.Net RC1 до ASP.Net Core RC2. Обозреватель решений в Visual Studio дает мне предупреждение "Зависимости - не установлено" с вложенной папкой "npm - не установлено".
Однако зависимости, похоже, устанавливаются - я запускал "npm install" в каталоге проекта, и он работал нормально, без каких-либо ошибок, просто некоторые предупреждения. Он добавил папки зависимостей в родительскую папку с именем node -модули, которые я вижу в проводнике Windows. Папка node -modules содержит папки для angular2, bootstrap, copy-webpack-plugin и т.д.
Кто-нибудь знает, почему Visual Studio говорит мне, что они не установлены? Я также попытался запустить npm install из консоли диспетчера пакетов и сделать "пакеты с щелчком правой кнопки мыши → восстановления" в этих папках, предоставив мне предупреждение в обозревателе решений.
![введите описание изображения здесь]()
Вот мой файл package.json:
{
"name": "EmptyWebApp",
"version": "0.0.0",
"dependencies": {
"angular2": "2.0.0-beta.13",
"bootstrap": "^3.3.5",
"es6-promise": "^3.0.2",
"es6-shim": "^0.35.0",
"reflect-metadata": "0.1.2",
"jquery": "^2.1.4",
"less": "^2.5.3",
"lodash": "^3.10.1",
"rxjs": "5.0.0-beta.2",
"systemjs": "0.19.22",
"ts-loader": "^0.7.2",
"zone.js": "0.6.6"
},
"devDependencies": {
"del": "^2.0.2",
"event-stream": "^3.3.1",
"copy-webpack-plugin": "^0.3.3",
"css-loader": "^0.23.0",
"exports-loader": "0.6.2",
"expose-loader": "^0.7.1",
"file-loader": "^0.8.4",
"gulp": "^3.9.0",
"html-webpack-plugin": "^1.7.0",
"http-server": "^0.8.5",
"imports-loader": "^0.6.4",
"istanbul-instrumenter-loader": "^0.1.3",
"json-loader": "^0.5.3",
"nodemon": "^1.8.1",
"phantomjs": "^1.9.18",
"phantomjs-polyfill": "0.0.1",
"protractor": "^3.0.0",
"raw-loader": "0.5.1",
"reflect-metadata": "0.1.2",
"remap-istanbul": "^0.5.1",
"rimraf": "^2.4.4",
"style-loader": "^0.13.0",
"ts-helper": "0.0.1",
"ts-loader": "^0.7.2",
"tsconfig-lint": "^0.4.3",
"tslint": "^3.2.0",
"tslint-loader": "^2.1.0",
"typedoc": "^0.3.12",
"typescript": "1.8.9",
"typings": "^0.6.1",
"url-loader": "^0.5.6",
"webpack": "^1.12.9",
"webpack-dev-server": "^1.12.1",
"webpack-md5-hash": "0.0.4"
},
"scripts": {
"tsc": "tsc -p . -w",
"start": "nodemon --ignore htm,html --ext cs,js --exec \"dnx web\" -V",
"static": "nodemon --watch ./client --ext html,css --exec \"gulp deploy-client\" -V",
"pre-build": "gulp deploy-client",
"webpack": "webpack",
"webpack-watch": "webpack --watch",
"clean": "gulp cleanwww",
"build": "npm run pre-build && npm run webpack",
"dnx": "dnx web"
}
}
Ответы
Ответ 1
Я думаю, что это известная проблема с RC2, сообщаемая в asp github
https://github.com/aspnet/Tooling/issues/479
Я думаю, что функциональность должна работать, но сообщение ошибочно
вероятно, нам нужно подождать, пока они не решают проблему.
Ответ 2
Это все еще проблема в редакции Visual Studio Community 2015, Update 3 при создании ASP.NET Core Web Application (.NET Framework 4.5.2)
с помощью Empty ASP.NET Core Template
. Кажется, что он работает правильно при создании проекта с использованием шаблона веб-приложений ASP.NET Core.
Как упоминалось выше, сообщение вводит в заблуждение, поскольку установлены зависимости. Похоже, что Visual Studio просто неверно сообщает, что npm и зависимости не установлены. Временное исправление заключается в переопределении того, где Visual Studio ищет node.js, который удаляет сообщения not installed
в visual studio.
В Visual Studio перейдите в Tools > Options > Projects and Solutions > External Web Tools
и добавьте путь к вашей установке node.js. Это по умолчанию расположено в C:\Program Files\nodejs\
или C:\Program Files (x86)\nodejs\
Переместите эту новую строку вверх или по крайней мере выше строки $(VSINSTALLDIR)\Web\External.
![введите описание изображения здесь]()
Восстановите свои пакеты, и сообщение об ошибке должно исчезнуть.
![введите описание изображения здесь]()
Ответ 3
Это связано с тем, что NPM создает предупреждение о компоненте, который не может быть установлен, например компонент OSX, если вы находитесь в окнах. VS интерпретирует это как неудачу, когда это действительно не так.
Подробнее здесь.
Ответ 4
У меня была такая же проблема, и после того, как мы ответили на самый высокий голос, добавив C:\Program Files\Nodejs
к моим внешним веб-инструментам, ничего не сделал. Даже изменение порядка путей не помогло.
>npm - v
4.2.0
>node - v
v6.10.0
Технически вы можете развернуть дерево зависимостей в визуальной студии, чтобы в конечном итоге найти проблему, однако проще всего запустить npm list
и найти проблему с дочерним элементом.
![problem_child]()
Итак, поскольку fsevents
был виновником, и это была необязательная зависимость (его не использовалось при запуске node с визуальной студией по архитектуре Windows), я обнаружил модули, которые имели fsevents в качестве дополнительной зависимости.
Для меня это был модуль ckokidar
, однако он был расположен в двух местах.
MyProject\node_modules\сторож
а также в
MyProject\node_modules\браузер синхронизации\ node_modules\сторож
Я подозреваю, что у вас есть gulp -watch как зависимость, она может быть и там.
Итак, что я сделал для каждой из этих папок, я открыл файл project.json
и удалил в них любой трек fsevents.
"dependencies": {
....
"async-each": "^1.0.0", <-- also remember to remove the trailing ',' comma for the end
"fsevents": "^1.0.0" <-- remove this
}
и
"keywords": [
...
"file", <-- remove comma
"fsevents" <-- remove
],
и полностью удалить это
"optionalDependencies": {
"fsevents": "^1.0.0"
},
Не оставляйте никаких конечных запятых в любом из файлов или вы получите сообщение об ошибке от npm.
Наконец, щелкните правой кнопкой мыши в Visual Studio на зависимостях и запустите Restore Packages
. Теперь вы должны быть предупреждены бесплатно! Наслаждайтесь.
![result]()
Ответ 5
Я удалил каждый элемент из файла package.json, пока ошибка не исчезнет. В моем случае ошибка была вызвана
"grunt-ts": "5.5.1"
Ответ 6
Откройте пакет package.json и начните удалять пакеты один за другим, пока предупреждение не исчезнет.
![введите описание изображения здесь]()
После удаления "webpack": "^1.12.14",
из package.json я больше не получаю предупреждение
![введите описание изображения здесь]()
Ответ 7
Просто скопируйте и вставьте папку node -modules из папки nodejs в вашу визуальную студию, корневую папку проекта и щелкните правой кнопкой мыши и восстановите пакеты внутри VS. Это сделает трюк!
Ответ 8
Я последовал совету Дэвида Гласса, хотя он все еще выглядел так, как будто у меня была проблема. Я обновил файл package.json, чтобы devDependances соответствовали зависимостям, а затем предупреждение ушло.
Ответ 9
Тип проекта: ASP.NET Core (.NET)
Это также может произойти, если у вас установлена зависимость script, которую не удалось установить.
В окне VS Output появится соответствующая ошибка.
В моем случае это был jqueryui-amd:
remote: репозиторий не найден. fatal: репозиторий 'https://github.com/jrburke/jqueryui-amd.git/' не найден
Удалите сбойную зависимость и щелкните правой кнопкой мыши папку "Зависимости" в базовом пути решения и выберите
Restore packages
Ответ 10
Моя проблема была в одном из пакетов, которые остановили загрузку всех других пакетов, лучший способ проверить, работают ли все ваши пакеты, чтобы запустить интерфейс командной строки "CMD" и перейти к вашему проекту → Тип:
npm install
и вы увидите, что все ваши пакеты проходят через установку без проблем.
В пакете у меня были проблемы с
Webpack "Webpack": "^ 1:12:14"
Мне пришлось удалить его с помощью Инструмент установщика пакетов.
Просто щелкните правой кнопкой мыши и удалите пакет.
Ошибка зависимостей NodeJS сразу исчезает.
Переустановите из CLI с помощью:
npm install packagename
Надеюсь, что поможет: -)