如何在Visual Studio 2015中禁用NPM包还原?

83

当我在Visual Studio 2015中打开带有package.json的项目时,会自动开始npm安装,并且在安装完成之前,VS将无响应。

我更愿意自己从命令行运行npm install;如何停止Visual Studio自动执行安装?

3个回答

80

尝试以下步骤:

  • 打开工具 -> 选项
  • 选择项目和解决方案 / 外部 Web 工具
  • 取消所有四个路径的勾选
  • 点击 确定

关闭解决方案等似乎不是必要的。NPM 和 Bower 的功能现在在 VS 中被禁用,但在命令行中将正常工作(假设已全局安装了 npm、bower 等)。您可能会在输出窗口中收到一些错误消息,但没有编译错误或警告。

要恢复正常操作,请返回外部 Web 工具并在右下角点击“恢复默认设置”。
我还没有在发布中尝试过这种方法——如果在那时遇到错误,您可能需要恢复默认值以成功发布,请尝试。


1
虽然输出中出现了一些错误,例如任务运行器资源管理器无法找到 Gulp 等等,但我想这是可以预料的。这确实解决了问题,谢谢 :) - Geir Sagberg
28
你不能禁用这个选项,这相当荒谬。:( - Sean Anderson
4
没有 Git 和 NPM 集成的情况下,+1 VS 的速度已经够慢了。最好使用 VS Code / Sublime / Webstorm 来进行与 JavaScript 相关的项目。 - cchamberlain
1
使用VS Community 2017 15.5.6。这实际上是有效的,但我必须重新启动Visual Studio才能停止还原npm包。 - rsenna
有没有永久的解决方案?我已经应用了这个,然后升级了VS2019,NPM又启用了。 - amartin1911

77
如果您升级到Visual Studio 2017(免费的“Community Edition”也可以),那么VS团队已经添加了一个选项,可以在打开项目时停止运行npm。它位于“工具/选项/项目和解决方案/网络包管理/包恢复”下。您可以分别在项目打开和package.json保存时禁用NPM(和Bower)的恢复。
请注意,对于node.js项目类型(NTVS),在目前的VS2017中完全禁用了自动包恢复行为。
编辑:上述答案也适用于Visual Studio 2019和Visual Studio 2022。菜单选项位于相同的位置,尽管Bower支持已被弃用。

有没有永久的解决方案?我已经应用了这个,然后升级了VS2019,NPM又启用了。 - amartin1911

4

Visual Studio 2015 Update 2修复了这个问题!安装Update 2后,您就可以顺利进行了。

直接下载链接:http://go.microsoft.com/fwlink/?LinkId=691129
Update 2 发布说明:https://www.visualstudio.com/news/releasenotes/vs2015-update2-vs

编辑:“fixed”可能不完全准确,并且对于所有用户来说可能并不完全“fixed”。也许我们可以确定每个人的经历。澄清一下,我的经验如下:

  • 在升级到 Update 2 之前,每次打开 .sln 文件时,VS 都会运行“npm install”,这很难应付。
  • 在安装了 Update 2 后,VS 只会在某些情况下运行“npm install”,这是可以容忍的(在我的经验中)。

根据我的经验,在打开 .sln 文件时,post-patch VS 会运行“npm install”, 如果 package.json 中的任何依赖项在 node_modules 文件夹中缺失(或者文件夹本身缺失),则会运行“npm install”。

您无法禁用“npm install”,因此“fixed”可能不完全正确-但是,与以前相比,它不会在每次启动时都运行“npm install”,因此我认为这是一种胜利。大家可以确认这是否是您的操作行为,或者我们经历了不同的情况吗?


虽然这个链接可能回答了问题,但最好在这里包括答案的基本部分并提供参考链接。如果链接页面发生更改,则仅有链接的答案可能会失效。- [来自审查] (/review/low-quality-posts/11866175) - Alessandro Cuttin
1
链接中并不包含答案,它只是用于软件更新下载。我将链接更改为直接链接到下载页面,而不是更新说明。这样可以吗? - Ashlin Allen
2
我不会说它被修复了,他们只是让屏幕不太可能锁定或崩溃,但如果你手动处理npm,它会与vs自动恢复发生冲突,而且目前还没有禁用它的选项。 - npjohns
我有Visual Studio 2015 Update 2,但它仍然尝试运行npm install和gulp。我不确定这是否可以解决问题。 - Jamie McCrindle
我已经编辑了我的回答,你是否也看到它在特定场景中运行 'npm install',还是其他时间运行?至于 Gulp,我会尝试深入研究... 我目前的设置是使用 Webpack,只有当我配置了任务运行器资源管理器时,VS 才会运行 Webpack。即使没有配置 TRE 运行它,VS 也会运行 Gulp 吗? - Ashlin Allen
肯定有一种方法可以禁用这个功能。它真的会降低我的生产力,因为我已经创建了自己的脚本,在解决方案启动时进行 NPM 安装,所以现在发生了两次。谁知道如何通过扩展来自定义 VS2015 的代码呢? - TetraDev

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接