【问题标题】:How can I uninstall npm modules in Node.js?如何在 Node.js 中卸载 npm 模块?
【发布时间】:2012-10-15 12:22:01
【问题描述】:

众所周知,任何 npm 模块都可以通过运行一个简单的命令来安装:npm install <module_name>

我已经安装了一些不再使用的模块,我只想将它们取下来。我对此有几个问题:

  • 我们是否有任何命令或流程可以从根目录卸载模块(类似于npm uninstall <module_name>) 还是直接删除模块文件?

  • 如果我们保留未使用的模块,对我们有何影响?

【问题讨论】:

标签: node.js npm


【解决方案1】:

命令就是npm uninstall <name>

Node.js 文档 https://npmjs.org/doc/ 包含您需要了解的所有 npm 命令。

本地安装将在您的应用程序的node_modules/ 目录中。如果一个模块没有引用它,这不会影响应用程序。

但是,如果您要删除全局包,任何引用它的应用程序都会崩溃。

这里有不同的选择:

npm uninstall <name>node_modules 中删除模块但不更新package.json

npm uninstall <name> --save 也将其从 dependenciesin package.json 中删除

npm uninstall <name> --save-dev 也将其从devDependencies 中的package.json 中删除

npm uninstall -g <name> --save 也将其全局删除

【讨论】:

  • 试试这个npm -g ls | grep -v 'npm@' | awk '/@/ {print $2}' | awk -F@ '{print $1}' | xargs npm -g rm来卸载所有gobally安装的模块。如果你在 Windows 上,那么你需要安装 Cygwin 或 git 来运行它
  • 卸载所有全局模块:stackoverflow.com/questions/5926672/… 并删除 node_modules 文件夹 卸载所有本地模块删除本地 node_modules 文件夹
  • 我已尝试使用上面列出的所有命令删除 cypress@3.1.4,但它仍然存在
  • npm uninstall <name> now removes the module from both package.json` 和 node_modules
  • 截至 2019 年,节点 13(我相信 10+ 也是如此)通过 npm uninstall <name> 从 package.json 中删除包
【解决方案2】:

如果它不适用于npm uninstall <module_name>,请输入-g 全局尝试。

也许您只需要使用sudo npm uninstall <module_name> 以超级用户/管理员的身份进行操作即可。

【讨论】:

  • 如果有npm WARN uninstall-g 会很有帮助。
【解决方案3】:

好吧,给这个问题一个完整的答案,有two methods(比如我们把安装的模块称为module1):

  1. 要删除 module1 而不更改 package.json:

    npm uninstall module1

  2. 更改 package.json 来移除 module1,并从 package.json 中的依赖项中移除它:

    npm uninstall --save module1

注意:为简化上述命令,可以使用-S代替--save,也可以使用remove,rm、rununlink 而不是 uninstall

【讨论】:

  • 为了完整起见,应该小心他/她是否要删除 GLOBAL 或 LOCAL 依赖项。对于全局使用 -g 与上述!另外:对于卸载所有全局模块:stackoverflow.com/questions/5926672/… 并删除 node_modules 文件夹对于卸载所有本地模块,请删除本地 node_modules 文件夹
【解决方案4】:

我只是默认安装stylus在我的home目录下,所以我只是使用npm uninstall stylus分离它,或者你可以尝试npm rm <package_name> out。

【讨论】:

    【解决方案5】:

    卸载 Node.js 模块:

    npm uninstall <module_name>
    

    这将从文件夹 node_modules 中删除模块,但不会从文件 package.json 中删除。所以当我们再次执行 npm install 时,它会下载模块。

    所以要从文件 package.json 中删除模块,请使用:

    npm uninstall <module_name> --save
    

    这也会从文件 package.json 中删除依赖项。

    如果你想卸载任何全局模块,你可以使用:

    npm -g uninstall <module_name> --save
    

    这将全局删除依赖项。

    【讨论】:

      【解决方案6】:

      要批量删除文件夹 node_modules 中的包,您也可以从文件 package.json 中删除它们,保存它,然后在终端中运行 npm prune

      这将删除那些存在于文件系统中但未在文件package.json中使用/声明的包。

      P.S.:这在 Windows 上特别有用,因为您可能经常会遇到由于“超出路径长度限制”而无法删除某些文件的问题。

      【讨论】:

        【解决方案7】:

        您还可以将以下内容作为简写形式运行:

        npm un packageNamenpm rm packageName

        注意:在命令末尾添加-g 以卸载全局包。

        【讨论】:

          【解决方案8】:

          有时npm uninstall -g packageName 不起作用。

          在这种情况下,您可以手动删除包。

          在 Mac 上,转到文件夹 /usr/local/lib/node_modules 并删除包含所需软件包的文件夹。而已。使用以下命令检查您的全局安装包列表:

          npm list -g --depth=0
          

          【讨论】:

          • 只是好奇,为什么“npm uninstall -g packageName”在某些情况下不起作用?
          • 因为它是巨大的错误代码......很难适应每个操作系统版本。我想这就是原因
          【解决方案9】:

          npm 5 更新:

          截至npm 5.0.0,已安装/卸载的模块默认作为依赖项添加/删除,因此不再需要--save 选项。

          运行

          npm uninstall <package>
          

          例如:

          npm uninstall mongodb
          

          它将从 node_modules 文件夹和 package.json 文件中删除模块。

          【讨论】:

          【解决方案10】:

          我发现这一点很困难,即使它看起来很明显。

          我最初尝试使用脚本中的简单 for 循环来循环运行 npm uninstall module-namenode_modules 目录。我发现如果您调用完整路径,它将不起作用,例如,

          npm uninstall module-name
          

          正在工作,但是

          npm uninstall /full/path/to/node_modules/module-name 
          

          没有工作。

          【讨论】:

            【解决方案11】:

            对于 Windows 用户 - 如果您想一次性删除所有安装的 Node.js 模块:

            • 打开 PowerShell 窗口
            • 进入 node_modules 文件夹 (cd node_modules)
            • 运行此命令 - “npm uninstall (Get-ChildItem).Name”

            它将卸载所有模块。

            【讨论】:

              【解决方案12】:

              要使用 npm 卸载模块,您可以使用:

              npm uninstall moduleName
              

              另外,如果您想卸载并希望更改反映在您的 package.json 中,那么您可以使用 --save 标志,如下所示:

              npm uninstall moduleName --save
              OR
              npm uninstall -S
              

              如果你想从 devDependencies 中卸载一个模块并希望更改反映在 package.json 中,那么你可以使用 -D 标志,如下所示:

              npm uninstall moduleName -D
              

              【讨论】:

                【解决方案13】:

                当我尝试使用与安装时使用的命令相同的命令时,uninstall 选项对我不起作用(因为我使用 @latest 指令进行安装)

                例如,我安装了一个这样的包:

                npm install  @ngtools/webpack@latest
                

                然后我想卸载它,所以我使用了相同的命令(包括@latest):

                npm uninstall  @ngtools/webpack@latest
                

                所以上面的卸载不起作用。我必须删除@latest,然后它运行良好:

                npm uninstall  @ngtools/webpack
                

                【讨论】:

                  【解决方案14】:

                  卸载 Node.js 模块:

                  npm uninstall <module_name>
                  

                  这将从文件夹 node_modules 中删除模块,但不会从文件 package.json 中删除。

                  使用以下命令从 package.json 中删除模块:

                  npm uninstall <module_name> --save
                  

                  这也会从 package.json 中删除它。

                  【讨论】:

                    【解决方案15】:

                    别名可以用来卸载node_modules包

                    ununinstall 的别名

                    • 删除单个包
                     - npm un <PACKAGE_NAME> 
                    
                    • 通过在包名称之间添加空格来删除多个包
                    - npm un <PACKAGE_NAME_1> <PACKAGE_NAME_2> 
                    

                    【讨论】:

                      【解决方案16】:

                      另外,如果您已经开始使用yarn,代替npm
                      yarn remove &lt;package-name&gt;

                      相当于:
                      npm uninstall &lt;package-name&gt; --save

                      这将
                      - 从package.json 中删除包,以及
                      - 从项目的node-modules 文件夹中卸载它

                      【讨论】:

                        【解决方案17】:
                        # Log in as root (might be required depending on install)
                        su -
                        
                        # List all global packages
                        npm ls -g --depth=0
                        
                        # List all local (project) packages
                        npm ls -p --depth=0
                        
                        # Remove all global packages
                        npm ls -g --depth=0 | awk -F/ '/node_modules/ && !/\/npm$/ {print $NF}' | xargs npm -g rm
                        
                        # Remove all local packges
                        npm ls -p --depth=0 | awk -F/ '/node_modules/ && !/\/npm$/ {print $NF}' | xargs npm -p rm
                        
                        # NOTE (optional): to use node with sudo you can add the bins to /usr/bin
                        # NOTE $PATHTONODEINSTALL is where node is installed (e.g. /usr/local/node)
                        sudo ln -s $PATHTONODEINSTALL/bin/node /usr/bin/node
                        sudo ln -s $PATHTONODEINSTALL/bin/npm /usr/bin/npm
                        

                        【讨论】:

                          【解决方案18】:

                          最简单的解决方案是:

                          npm uninstall packageName --save-dev
                          

                          查看项目中的上层包名称:

                          npm list --depth=0
                          

                          输出会是这样的:

                          app@0.1.0 /home/jackkobec/projects/myAppName
                          ├── packageName@packageVersion
                          ├── express@4.16.4
                          

                          复制包名并执行 npm uninstall 命令。快递包示例:

                          npm uninstall express --save-dev
                          

                          【讨论】:

                            【解决方案19】:

                            npm v6+ npm uninstall &lt;package_name&gt; 在文件夹 node_modules 和文件 package.json 中删除它。

                            【讨论】:

                              【解决方案20】:

                              使用

                              npm uninstall <package_name>
                              

                              快速卸载示例

                              npm uninstall express
                              

                              【讨论】:

                                【解决方案21】:

                                如果您使用的是 Windows,请以管理员身份运行 CMD 并键入:

                                npm -g uninstall <package name>
                                

                                【讨论】:

                                  【解决方案22】:

                                  您可以手动删除 Node.js 模块。对于 Windows,

                                  1. 转到您的存储库的node_modules 目录。

                                  2. 删除不需要的 Node.js 模块。

                                  3. 不要忘记删除 package.json 文件中对模块的引用!您的项目可能仍会使用该引用运行,但您可能会收到错误消息。您也不想在 package.json 文件中留下未使用的引用,这可能会在以后引起混淆。

                                  【讨论】:

                                    【解决方案23】:
                                    npm uninstall <package_name>
                                    

                                    【讨论】:

                                      【解决方案24】:

                                      如果要卸载多个模块,只需运行npm uninstall

                                      然后转到文件 package.json 并从那里删除不需要的模块,然后运行命令npm install。它应该可以解决您的问题。

                                      【讨论】:

                                        猜你喜欢
                                        • 2019-10-12
                                        • 2016-01-06
                                        • 1970-01-01
                                        • 2023-02-17
                                        • 2011-05-16
                                        • 2012-03-06
                                        • 2023-01-22
                                        • 1970-01-01
                                        相关资源
                                        最近更新 更多