Visual studio 2015 停止npm在我的ASP NET核心web项目上还原整个存储库

Visual studio 2015 停止npm在我的ASP NET核心web项目上还原整个存储库,visual-studio-2015,npm,node-modules,package.json,asp.net-core-1.0,Visual Studio 2015,Npm,Node Modules,Package.json,Asp.net Core 1.0,问题:还原后,在ASP.NET核心项目Dependencies\npm\中包含了许多奇怪的包(还原)。与我的package.json配置文件不对应的包。如何阻止它 在一个空ASP.NET核心Web项目中,我将使用angular2作为UI项目,我添加了package.json文件,其中包含依赖项和devdependency节点 { "name": "myProject", "version": "1.0.0",

问题:还原后,在
ASP.NET核心项目
Dependencies\npm\
中包含了许多奇怪的包(还原)。与我的
package.json
配置文件不对应的包。如何阻止它

在一个
空ASP.NET核心
Web项目中,我将使用
angular2
作为UI项目,我添加了
package.json
文件,其中包含依赖项devdependency节点

{
  "name": "myProject",
  "version": "1.0.0",
  "scripts": {
    "start": "npm run tsc && concurrently \"npm run tsc:w\" \"npm run lite\" ",
    "tsc": "tsc",
    "tsc:w": "tsc -w",
    "lite": "lite-server",
    "typings": "typings",
    "postinstall": "typings install"
  },
  "license": "ISC",
  "dependencies": {
    "@angular/common": "2.0.0-rc.1",
    "@angular/compiler": "2.0.0-rc.1",
    "@angular/core": "2.0.0-rc.1",
    "@angular/http": "2.0.0-rc.1",
    "@angular/platform-browser": "2.0.0-rc.1",
    "@angular/platform-browser-dynamic": "2.0.0-rc.1",
    "@angular/platform-server": "2.0.0-rc.1",
    "@angular/router": "2.0.0-rc.1",
    "@angular/router-deprecated": "2.0.0-rc.1",
    "@angular/upgrade": "2.0.0-rc.1",
    "es6-shim": "^0.35.1",
    "reflect-metadata": "0.1.3",
    "rxjs": "5.0.0-beta.6",
    "systemjs": "^0.19.27",
    "zone.js": "^0.6.12",
    "bootstrap": "3.3.6",
    "jquery": "2.2.3",
    "font-awesome": "4.6.1",
    "toastr": "2.1.2",
    "chart.js": "2.1.3",
    "signature_pad": "^1.5.3",
    "moment": "2.13.0",
    "fullcalendar": "2.7.1",
    "fullcalendar-scheduler": "1.3.1"
  },
  "devDependencies": {
    "concurrently": "^2.0.0",
    "lite-server": "^2.2.0",
    "typescript": "^1.8.10",
    "typings": "^0.8.1",
    "bootstrap": "3.3.6",
    "font-awesome": "4.6.1",
    "toastr": "2.1.2",
    "signature_pad": "^1.5.3"
  }
}
项目结构中的
Dependencies
文件夹立即通知我必须还原
npm
包。 我打开了
npm
文件夹,在那里看到了我从
package.json
中获得的参考,然后按下了[restore]

npm
文件夹中的还原结束时,在
依赖项下,我看到许多引用被自动添加
node\u modules文件夹包含361个包,而不是我的包:在
package.json
中定义了28个包

我不知道他们为什么被包括在内。 有人知道为什么会这样吗?如何避免这种冗余

我认为可以逐个卸载软件包。。。。我应该从
npm
文件夹中卸载它们吗


谢谢。

简短回答:您不应该删除或卸载额外的软件包。它们是
package.json
中列出的包的依赖项

较新版本的npm改变了安装包依赖项的方式。旧版本总是在包的文件夹下安装包的依赖项,并在其文件夹下安装每个包的依赖项,依此类推。这有利于依赖项隔离,但它会导致深度嵌套的文件夹结构,从而在Windows上产生问题,因为它们将超过
MAX\u PATH
。较新版本的npm在根文件夹中安装可共享的子依赖项。您看到的包与以前的包大致相同,只是在一个更平坦的文件夹结构中


现在,在最近的ASP.NET Core RC2发布之前,VS的Web工具并没有很好地显示这种新结构。所有这些扁平的包都将显示为“无关的”根包。如果您可以将Web工具升级到RC2版本,那么您应该可以在npm节点下看到您所期望的:只有
package.json
中的包,其他包嵌套在它们下面。

您安装了什么版本的ASP.NET Core Tools for VS?您是否在计算机上安装了npm/Node.js,如果安装了,是什么版本;npm 3.8.8;节点6.1.0;ASP.NET和Web工具2015.1;Microsoft.NET核心工具(预览版1)14.1.20512.0是的,Joe,我发现它们是package.json中列出的现有包的依赖项。它们中的许多是
并发的
精简服务器
:)的依赖项。我通过卸载它们来玩游戏,但是
npm start
命令崩溃:)所以,我将它们恢复了。谢谢你的解释!干得好