【问题标题】:npm: using 'npm uninstall' vs. just removing the foldernpm:使用“npm 卸载”与仅删除文件夹
【发布时间】:2017-02-16 14:32:21
【问题描述】:

我想试试 grunt-babel,所以我在我的 Home 文件夹中打开了一个终端,并根据插件的说明执行了 npm install --save-dev grunt-babel babel-preset-es2015。

我这样做太仓促了,我意识到我可能应该在我正在涉足 ES6 代码的 new 项目文件夹中这样做。我什至没有在那个文件夹中完成 npm init ,也没有在我执行安装命令的主文件夹中完成。

当我执行 npm uninstall grunt-babel 时,预设文件被删除,但 node_modules 文件夹中保留了 91 个不同依赖项的文件夹。

我可以简单地删除文件夹而不是运行 npm uninstall 91 次吗?

这个人问了一个类似的问题,但没有一个答案能解决他删除文件夹的子问题:how to uninstall npm modules in node js?

【问题讨论】:

    标签: npm


    【解决方案1】:
    • npm uninstall <name> 从 node_modules 中删除模块,但不是 package.json。

    • npm uninstall <name> --save 也从 package.json 中删除依赖项。

    • npm rm <package_name> 在卸载不工作时删除软件包

    • npm prune <name> (see docs) 用于无关包和未在父包的依赖项列表中列出的包。

    如果不想一一卸载运行
    rm -rf node_modules && npm cache clean && npm install
    这是确保您卸载的包不再在包 json 中的好方法。

    现在在 2021 年 npm uninstall <name> 也将从 package.json 中删除它

    【讨论】:

    • 这如何回答手动删除和 npm 卸载差异的问题。您添加了删除类型很好,但请您给出具体答案
    • npm uninstall <name> 会在 2021 年将其从 package.json 中删除。有人可以更新这个答案吗?
    【解决方案2】:

    使用npm list 作为了解您的更改的工具。我通常会利用这段时间制作一个捕获文件,例如:

    npm list >1307
    

    做一些改变

    npm list >1309
    

    那么:

    cat 13??
    

    或者编辑器让我看看 npm 认为它做了什么。

    对于卸载,仅删除根目录中所有大小的“整个包”的包。除此之外,该命令被礼貌地忽略...

    例如:

    ├── safe-stable-stringify@1.1.0
    ├── semver@6.3.0
    ├─┬ tableify@1.1.0
    │ └─┬ optimist@0.6.1
    │   ├── minimist@0.0.8 deduped
    │   └── wordwrap@0.0.3
    

    safe-stable-stringify 是删除候选者,但 wordwrap 不是。想一想,这完全有道理!

    npm uninstall pkgtoyank -save
    

    通过将 packages.json 也从那里删除来更新它。

    至少可以说,npm 的设计非常好。我通常会非常避免直接在 ./node_modules 中戳它,我会从那里复制一些东西来查看它们,但是为什么要拉着 BIG CAT 的皮带并得到一点。有用;按预期使用它....

    【讨论】:

      【解决方案3】:

      更新答案(2020 年):

      这些都是uninstall 的别名: removermrununlink

      今天不需要--save 标志,因为它是默认值。顺便说一句,安装也是如此。

      【讨论】:

        猜你喜欢
        • 2014-04-04
        • 2014-11-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-01-02
        • 2018-08-09
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多