首页 文章

如何在节点js中卸载npm模块?

提问于
浏览
591

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

我已经安装了一些我不再使用的模块,我只是想让它们关闭 . 我有几个问题:

  • 我们是否有任何命令或进程从根目录卸载模块(如 npm uninstall <module_name> )或只是删除模块文件呢?

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

15 回答

  • 0

    该命令只是 npm uninstall <name>

    nodejs文档https://npmjs.org/doc/具有使用npm需要知道的所有命令 .

    本地安装将位于应用程序的 node_modules/ 目录中 . 如果模块保留在那里而没有引用它,这将不会影响应用程序 .

    但是,如果要删除全局程序包,则引用它的任何应用程序都将崩溃 .

    这里有不同的选择:

    npm uninstall <name>node_modules 删除模块,但不是 package.json

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

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

    npm -g uninstall <name> --save 也会全局删除它

  • 830

    我只是在我的家庭目录下默认安装手写笔,所以我只是使用 npm uninstall stylus 来分离它,或者你可以试试 npm rm <package_name> .

  • 64
    # login 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
    
  • 3

    那么为了给出这个问题的完整答案,有two methods :(例如我们将已安装的模块称为module1)

    • 删除module1 without 更改package.json:

    npm uninstall module1

    • 删除module1 with 更改package.json,并将其从package.json中的依赖项中删除:

    npm uninstall --save module1

    注意:为简化上述命令,可以使用 -S 而不是 --save ,并且可以使用 removermrununlink 而不是 uninstall

  • 1

    如果要卸载多个模块,只需运行 npm uninstall 即可 . 然后转到 package.json 并从那里删除不需要的模块,然后运行命令 npm install . 它应该解决你的问题 .

  • 35

    我发现这很困难,即使看起来很明显 .

    我最初尝试在脚本中使用简单的for循环遍历运行 npm uninstall module-name 的node_modules目录 . 我发现如果你打电话给完整的路径它将无法工作,例如

    npm uninstall module-name
    

    工作,但是

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

    没用 .

  • 5

    使用 npm uninstall <packageName> --save 卸载包并删除 package.json 中的条目 .

    如果包全局添加, npm uninstall -g <packageName> --save 将卸载该包 .

  • 15

    对于Windows用户 - 如果要删除一次安装的所有节点模块:

    • 打开powershell

    • 进入node_modules文件夹(cd node_modules)

    • 运行此命令 - "npm uninstall (Get-ChildItem).Name"

    它将卸载所有模块 .

  • 1

    卸载 node module 的命令:

    npm uninstall <module_name>
    

    这将从本地 node-module 目录中卸载模块,这不会影响应用程序 .

    但是,如果您要引用全局范围或想要更改 package.json 中的依赖项

    这里有一些不同的选择

    npm uninstall <module_name> --savepackage.json 中的 dependencies 删除模块 .

    npm uninstall <module_name> --save-devpackage.json 中的 devDependencies 删除模块 .

    npm uninstall <module_name> -g --save 全局删除模块 .

    包含所有选项的完整文档,请参阅npm uninstall

  • 14

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

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

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

  • 0

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

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

    在Mac上转到文件夹 /usr/local/lib/node_modules 并删除包含所需包的文件夹 . 而已 . 使用此命令检查全局安装的软件包列表 npm list -g --depth=0

  • -2

    此外,如果您已开始使用 yarn ,而不是 npm
    yarn remove <package-name>

    相当于:
    npm uninstall <package-name> --save

    这将

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

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

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

    npm install  @ngtools/webpack@latest
    

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

    npm uninstall  @ngtools/webpack@latest
    

    所以上面的卸载没有用,我必须删除 @latest 然后它运行良好

    npm uninstall  @ngtools/webpack
    

    我希望这有帮助

  • 0

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

    也许您只需要以 sudo npm uninstall <module_name> 作为超级用户/管理员来做 .

  • 0

    要卸载节点模块:

    npm uninstall <module_name>
    

    这将从node_modules中删除模块,但不从package.json中删除 . 因此,当我们再次进行npm安装时,它将下载该模块 .

    所以要从package.json中删除模块使用:

    npm uninstall <module_name> --save
    

    这也删除了package.json的依赖项 .

    如果要卸载任何全局模块您可以使用:

    npm -g uninstall <module_name> --save
    

    这将全局删除依赖项 .

相关问题