Visual Studio中未安装的依赖项

时间:2016-06-21 16:27:41

标签: asp.net node.js visual-studio visual-studio-2015 npm

我目前正将ASP.Net RC1升级到ASP.Net Core RC2。 Visual Studio中的解决方案资源管理器向我发出警告:#34;依赖关系 - 未安装"使用子文件夹" npm - 未安装"。

然而,似乎确实安装了依赖项 - 我跑了'npm install'在项目目录中它运行正常,没有任何错误,只是一些警告。它将依赖项文件夹添加到名为node-modules的父文件夹中,我可以在Windows资源管理器中清楚地看到它。 node-modules文件夹包含angular2,bootstrap,copy-webpack-plugin等文件夹。

有谁知道为什么Visual Studio告诉我他们没有安装?我还尝试从Package Manager控制台运行npm install并执行右键单击 - >恢复套餐'在那些文件夹上给我在解决方案资源管理器中的警告。

enter image description here

这是我的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"
  }
}

10 个答案:

答案 0 :(得分:43)

使用ASP.NET Core Web Application (.NET Framework 4.5.2)创建Empty ASP.NET Core Template时,在Visual Studio社区2015,更新3版中仍然存在此问题。使用ASP.NET Core Web应用程序模板创建项目时,它似乎正常运行。

正如操作中提到的,由于安装了依赖项,因此该消息具有误导性。 Visual Studio似乎只是误报了npm和依赖项没有安装。临时修复是覆盖Visual Studio查找node.js的位置,这会删除visual studio中的not installed消息。

在Visual Studio中,转到Tools > Options > Projects and Solutions > External Web Tools并添加node.js安装的路径。这默认位于C:\Program Files\nodejs\C:\Program Files (x86)\nodejs\将此新行移至顶部或至少高于$(VSINSTALLDIR)\ Web \ External行。

enter image description here

恢复您的软件包,错误信息应该消失。

enter image description here

答案 1 :(得分:9)

我认为这是在asp github中报道的RC2的已知问题

https://github.com/aspnet/Tooling/issues/479

我认为功能应该可行,但消息是错误的 可能我们需要等到他们解决问题。

答案 2 :(得分:8)

这似乎是因为NPM会对无法安装的组件发出警告,例如OSX组件(如果您在Windows上)。当它真的没有时,VS将其解释为失败。 More details here.

答案 3 :(得分:4)

我遇到了同样的问题,并通过将C:\Program Files\Nodejs添加到我的外部网络工具路径没有做任何事情来遵循当前最高投票答案。即使改变路径的顺序也没有帮助。

>npm - v
4.2.0
>node - v
v6.10.0

从技术上讲,您可以在visual studio中扩展依赖关系树以最终找到问题,但是,更容易运行 npm list 并找到问题孩子。

problem_child

因为fsevents是罪魁祸首,它是一个可选的依赖项(在Windows体系结构上使用visual studio运行节点时不使用它),我找到了将fsevents作为可选依赖项的模块。

对我而言,它是ckokidar模块,但它位于两个地方。

  

MYPROJECT \ node_modules \ chokidar

以及

  

MYPROJECT \ node_modules \浏览器同步\ node_modules \ chokidar

我怀疑你是否有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

答案 4 :(得分:2)

我从package.json文件中删除了每个项目,直到错误停止出现。在我的情况下,错误是由

引起的

“grunt-ts”:“5.5.1”

答案 5 :(得分:1)

打开package.json并开始逐个删除软件包,直到警告消失。

enter image description here

从package.json中删除"webpack": "^1.12.14",后,我不再收到警告

enter image description here

答案 6 :(得分:0)

只需将node-modules文件夹中的node-modules文件夹复制并粘贴到visual studio,项目根文件夹,然后右键单击并恢复VS中的软件包即可。那就行了!

答案 7 :(得分:0)

我遵循大卫玻璃的建议,虽然看起来我仍然有问题。我更新了我的package.json文件,以便devDependencies与依赖项匹配,然后警告就消失了。

答案 8 :(得分:0)

项目类型:ASP.NET Core(.NET)

如果您的脚本依赖项无法安装,也会发生这种情况。 VS Output窗口将显示相应的错误。

在我的情况下,这是jqueryui-amd:

  

remote:找不到存储库。致命的:存储库&#39; https://github.com/jrburke/jqueryui-amd.git/&#39;找不到

删除失败的依赖项,然后右键单击Dependencies&#34;文件夹&#34;在解决方案基本路径中选择

Restore packages

答案 9 :(得分:0)

我的问题是阻止所有其他软件包加载的软件包之一,这是查看所有软件包工作的最佳方法是启动命令行界面&#34; CMD&#34;并导航到您的项目 - &gt;输入:

  

document.querySelectorAll("p")[2]

您将看到所有数据包是否都没有问题地完成安装。

包裹我遇到了

的问题
  

Webpack&#34; Webpack&#34;:&#34; ^ 1:12:14&#34;

我必须使用Package Installer tool将其卸载。 只需右键单击并卸载包。 NodeJS依赖关系错误会立即消失。

通过以下方式从CLI重新安装:

  

npm install packagename

希望有所帮助: - )