未在Visual Studio中嵌套具有最新节点的NPM包
启动标准ASP.Net 5 Web应用程序并添加npm包后,VS2015已停止嵌套这些包。即使有一个简单的包,比如“del”,我明白了- 我确信它应该只显示主包,其依赖项嵌套在主包下面。VS现在在所有项目中都这样做,而它们过去是整齐嵌套的。添加两个或三个包最终会得到一个庞大且难以管理的无关包列表 如果从命令提示符下运行未在Visual Studio中嵌套具有最新节点的NPM包,npm,visual-studio-2015,package-managers,Npm,Visual Studio 2015,Package Managers,启动标准ASP.Net 5 Web应用程序并添加npm包后,VS2015已停止嵌套这些包。即使有一个简单的包,比如“del”,我明白了- 我确信它应该只显示主包,其依赖项嵌套在主包下面。VS现在在所有项目中都这样做,而它们过去是整齐嵌套的。添加两个或三个包最终会得到一个庞大且难以管理的无关包列表 如果从命令提示符下运行npm list,则输出将指示整齐嵌套在del下面的所有包。我尝试了npm prune和npm cache clean但没有成功。NPM报告node的版本5.4.0,如果相关的话
npm list
,则输出将指示整齐嵌套在del下面的所有包。我尝试了npm prune
和npm cache clean
但没有成功。NPM报告node的版本5.4.0,如果相关的话,报告本身的版本3.5.4
我想让它正常运转
编辑-只有将默认的Node.js更改为更新的版本时,才会出现这种情况。VS2015更新1的默认值似乎是NPM 1.4.9,节点0.10.31。但还是没用。我怀疑如果不更新Visual Studio,这是无法解决的,但可能有一种巧妙的解决方法。这是出于设计考虑,因为新版本的node在默认情况下不再嵌套NPM包。之所以改变这一点,是因为旧设计通常会导致MAX_路径问题,嵌套项目会创建路径长度,很容易超过Windows上256个字符的限制
我知道,从表示的角度来看,您喜欢嵌套,但从可靠性的角度来看,这是一个巨大的改进。Windows上的NPM用户总是遇到这个问题。这是出于设计考虑,因为新版本的node在默认情况下不再嵌套NPM包。之所以改变这一点,是因为旧设计通常会导致MAX_路径问题,嵌套项目会创建路径长度,很容易超过Windows上256个字符的限制
我知道,从表示的角度来看,您喜欢嵌套,但从可靠性的角度来看,这是一个巨大的改进。Windows上的NPM用户一直遇到这个问题。编辑-以下是答案 这个问题的核心是npm3决定扁平化模块目录,主要原因是使用不支持长文件路径的旧api的Windows应用程序存在问题 长文件路径似乎不是VS的问题。由于仍在积极维护npm2,如果要避免梦魇嵌套,应使用npm2分支 但是,更新node.js会安装最新的npm3分支。要将您的npm恢复到2分支,您应该以管理员身份运行Powershell,然后运行
npm安装-gnpm@2.14.14
重新启动VS。如果您已经有一个展开的目录,则打开您的node\u modules
文件夹并删除所有内容,然后从VS GUI还原包。然后你应该回到一个可行的结构
(这确实是对Michael的回复,但我需要发布一张我在评论中无法做到的图片。) 谢谢你澄清这个立场。我希望你不会介意,如果我指出为什么我认为这是一个非常有问题的立场 首先,npm包的标准集是完全合理的
“吞咽”:“3.8.11”,
“咕噜咕噜”:“2.5.2”,
“大口喝cssmin”:“0.1.7”,
“狼吞虎咽”:“1.2.0”,
“rimraf”:“2.2.8”
以下是生成的包列表:
我想你马上就会明白这是多么不可行
其次,卸载软件包变得不可能
第三,有一些筑巢,但其原因和方式有点神秘
由此产生的结果是列出在DNX下安装的每一个ASP.Net包——实际上有数百个,而且同样不可行
我不完全理解字符限制问题,但在我看来,这更像是一个GUI问题。再次感谢。编辑-以下是答案 这个问题的核心是npm3决定扁平化模块目录,主要原因是使用不支持长文件路径的旧api的Windows应用程序存在问题 长文件路径似乎不是VS的问题。由于仍在积极维护npm2,如果要避免梦魇嵌套,应使用npm2分支 但是,更新node.js会安装最新的npm3分支。要将您的npm恢复到2分支,您应该以管理员身份运行Powershell,然后运行
npm安装-gnpm@2.14.14
重新启动VS。如果您已经有一个展开的目录,则打开您的node\u modules
文件夹并删除所有内容,然后从VS GUI还原包。然后你应该回到一个可行的结构
(这确实是对Michael的回复,但我需要发布一张我在评论中无法做到的图片。) 谢谢你澄清这个立场。我希望你不会介意,如果我指出为什么我认为这是一个非常有问题的立场 首先,npm包的标准集是完全合理的
“吞咽”:“3.8.11”,
“咕噜咕噜”:“2.5.2”,
“大口喝cssmin”:“0.1.7”,
“狼吞虎咽”:“1.2.0”,
“rimraf”:“2.2.8”
以下是生成的包列表:
我想你马上就会明白这是多么不可行
其次,卸载软件包变得不可能
第三,有一些筑巢,但其原因和方式有点神秘
由此产生的结果是列出在DNX下安装的每一个ASP.Net包——实际上有数百个,而且同样不可行
我不完全理解字符限制问题,但在我看来,这更像是一个GUI问题。再次感谢。(评论框错了)(评论框错了)请看我上面/下面的“答案”。I