停止 npm 在我的 ASP NET Core Web 项目上恢复整个存储库
Stop npm restoring entire repository on my ASP NET Core web project
问题: 恢复后,在ASP NET Core project
> Dependencies\npm\
中包含(恢复)了很多奇怪的包。与我的 package.json
配置文件不对应的包。如何停止?
在一个 Empty ASP.NET Core
Web 项目中,我将使用 angular2
作为 UI 项目,我添加了 package.json
文件和 dependencies 和 devDependencies 节点。
{
"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
文件夹恢复结束时,在 Dependencies
下,我看到 自动添加了很多引用。
node_modules 文件夹包含 361 个包,而不是我的:package.json
.
中定义的 28 个包
我不知道为什么他们被包括在内。
有谁知道为什么会这样?如何避免冗余 ...
我看到可以一个一个地卸载软件包....我应该从 npm
文件夹中卸载它们吗?
谢谢。
简短回答:您不应该删除或卸载额外的软件包。它们是 package.json
.
中列出的包的依赖项
较新版本的 npm 更改了包依赖项的安装方式。旧版本总是会在包的文件夹下安装包的依赖项,并将每个包的依赖项安装在它们的文件夹下,等等。这有利于隔离依赖关系,但它会导致深度嵌套的文件夹结构,导致 Windows 出现问题,因为它们会超过 MAX_PATH
。较新版本的 npm 在根文件夹中安装可共享的子依赖项。您看到的包集与之前大致相同,只是文件夹结构更扁平。
现在,在最近 ASP.NET Core RC2 发布之前,VS 的 Web 工具并没有很好地显示这个新结构。所有这些扁平化的包都将显示为 "extraneous" 根包。如果您可以将 Web 工具升级到 RC2 版本,那么您应该会在 npm 节点下看到您期望的内容:只有您的 package.json
中的包,其他包嵌套在它们下面。
问题: 恢复后,在ASP NET Core project
> Dependencies\npm\
中包含(恢复)了很多奇怪的包。与我的 package.json
配置文件不对应的包。如何停止?
在一个 Empty ASP.NET Core
Web 项目中,我将使用 angular2
作为 UI 项目,我添加了 package.json
文件和 dependencies 和 devDependencies 节点。
{
"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
文件夹恢复结束时,在 Dependencies
下,我看到 自动添加了很多引用。
node_modules 文件夹包含 361 个包,而不是我的:package.json
.
我不知道为什么他们被包括在内。 有谁知道为什么会这样?如何避免冗余 ...
我看到可以一个一个地卸载软件包....我应该从 npm
文件夹中卸载它们吗?
谢谢。
简短回答:您不应该删除或卸载额外的软件包。它们是 package.json
.
较新版本的 npm 更改了包依赖项的安装方式。旧版本总是会在包的文件夹下安装包的依赖项,并将每个包的依赖项安装在它们的文件夹下,等等。这有利于隔离依赖关系,但它会导致深度嵌套的文件夹结构,导致 Windows 出现问题,因为它们会超过 MAX_PATH
。较新版本的 npm 在根文件夹中安装可共享的子依赖项。您看到的包集与之前大致相同,只是文件夹结构更扁平。
现在,在最近 ASP.NET Core RC2 发布之前,VS 的 Web 工具并没有很好地显示这个新结构。所有这些扁平化的包都将显示为 "extraneous" 根包。如果您可以将 Web 工具升级到 RC2 版本,那么您应该会在 npm 节点下看到您期望的内容:只有您的 package.json
中的包,其他包嵌套在它们下面。