Зависимости, не установленные в 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

Надеюсь, что поможет: -)