如何取消节点模块?

时间:2016-02-18 20:08:39

标签: node.js

我目前的npm版本是3.7.3。以前,我的节点模块中只安装了所需的软件包。但是现在,当我查看节点模块时,它们已经变平并且有100 +个文件夹可见。我更喜欢旧的方式,您可以进入单个文件夹并查看其依赖项。 这是一个类似的线程: Why does npm install many packages into "/node_modules" instead of only one?

我尝试运行npm uninstall但没有取得多大成功。

2 个答案:

答案 0 :(得分:3)

基本上,你运气不好...... NPM没有提供任何关于此的配置选项。如果必须为了解决版本冲突,它将嵌套依赖项,但仅限于此情况。您唯一的选择是降级NPM(不推荐)。但是,如果您只是出于信息原因需要查看嵌套的依赖项,则可以使用npm ls。它会画出一个图表。

有关更多讨论,请参阅此相关NPM问题:https://github.com/npm/npm/issues/9809

答案 1 :(得分:0)

既然节点js'LTS不包含NPMv2,我发现自己又遇到了这个问题。 对于那些你也知道@KevinBurdett提到的the link,也有一些答案。

可以使用npm本身强制降级npm(使用 sudo 或等效的)。来自https://github.com/npm/npm/issues/9809#issuecomment-179702479

  

作为root我每次都在我的系统上执行npm install -g 'npm@<3'   一个新版本的Node出来了;你的里程可能会有所不同,但确实如此   “降级”相当微不足道: - )

另一种方法是使用节点版本管理器(NVM):https://github.com/creationix/nvm。您的里程可能因个人配置/偏好/平台而异。

那就是说,npm 3和平依赖树的问题将从以后开始......现在可能是开始接受这种变化的时候了。

我对此的个人怨恨是,它使得node_modules文件夹难以在IDE中使用,尤其是当您需要查看直接依赖模块的实现时,而不首先涉及100的sub -sub模块与我无关。当你阅读这个问题的评论时,我似乎并不孤单。只有在没有正确从旧系统迁移到新系统的情况下进行此类更改时,它才会让我质疑npm本身的可行性。对我来说,npm2永远是王道。