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

时间:2012-10-25 10:23:26

标签: node.js npm

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

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

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

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

28 个答案:

答案 0 :(得分:1117)

该命令只是npm uninstall <name>

nodejs文档https://npmjs.org/doc/包含您需要知道的所有命令。

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

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

以下是不同的选择:

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

npm uninstall <name> --save也会将其从dependencies

中的package.json移除

npm uninstall <name> --save-dev也会将其从devDependencies

中的package.json移除

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

答案 1 :(得分:69)

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

也许您只需要以sudo npm uninstall <module_name>作为超级用户/管理员进行操作。

答案 2 :(得分:40)

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

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

    npm uninstall module1

  2. 要删除module1 并使用更改package.json,并将其从package.json中的依赖项中删除:

    npm uninstall --save module1

  3. 注意:要简化上述命令,您可以使用 -S 代替 - 保存,并可以使用删除,< strong> rm , r 联合取消关联,而不是卸载

答案 3 :(得分:18)

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

答案 4 :(得分:14)

卸载节点模块:

npm uninstall <module_name>  

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

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

npm uninstall <module_name> --save  

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

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

npm -g uninstall <module_name> --save 

这将全局删除依赖项。

答案 5 :(得分:5)

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

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

npm uninstall module-name

正在运作,但

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

没有用。

答案 6 :(得分:3)

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

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

它将卸载所有模块。

答案 7 :(得分:2)

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

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

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

答案 8 :(得分:2)

您可以通过以下方式卸载节点模块

  1. 卸载程序包

    npm uninstall <Package Name>

  2. 卸载程序包并将其从package.json中的依赖项中删除

    npm uninstall <Package Name> --save

  3. 卸载程序包并将其从package.json中的dev依赖项中删除

    npm uninstall <Package Name> --save-dev

  4. 卸载全局软件包。全局软件包可以在系统的任何地方访问,而不仅限于特定项目

    npm uninstall -g <Package Name>

答案 9 :(得分:1)

有时npm uninstall -g packageName无效。

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

在Mac上,转到文件夹/usr/local/lib/node_modules,然后删除包含所需软件包的文件夹。而已。使用此命令npm list -g --depth=0

检查全局安装的软件包列表

答案 10 :(得分:1)

npm v6+ 中,npm uninstall <package_name> 在文件夹 node_modules 和文件 package.json 中将其删除。

答案 11 :(得分:1)

要卸载节点模块:

npm uninstall <module_name>  

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

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

npm uninstall <module_name> --save 

这也会从package.json中删除。

答案 12 :(得分:1)

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

// Make orders link highlighted by default in my account section.
add_action('wp_footer', 'taisho_dashboard_orders_highlight');
function taisho_dashboard_orders_highlight() {

    if (!is_account_page()) return; // Account section only

    global $wp;
    $acc_url = get_permalink( get_option( 'woocommerce_myaccount_page_id' ));
    $my_acc =  rtrim( $acc_url , '/' );
    $my_acc = explode( '/', $my_acc );

    ?>
    <script type="text/javascript">
        var dashboard_active = <?php echo $wp->request === end($my_acc) ?>;
        jQuery(document).ready(function($) {
            $('.woocommerce-MyAccount-navigation-link--orders').toggleClass('is-active', dashboard_active);
        });
    </script>

    <?php   
}

此外,如果您要卸载并将更改反映在package.json中,则可以使用--save标志,如下所示:

npm uninstall moduleName

如果您要从devDependencies卸载模块并希望将更改反映在package.json中,则可以使用-D标志,如下所示:

npm uninstall moduleName --save
OR
npm uninstall -S

答案 13 :(得分:1)

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

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

npm install  @ngtools/webpack@latest

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

npm uninstall  @ngtools/webpack@latest

因此上述卸载无效,我必须删除@latest,然后它才能正常工作

npm uninstall  @ngtools/webpack

我希望这对您有帮助

答案 14 :(得分:1)

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

npm uninstall -g <packageName> --save将在全局添加包时卸载该包。

答案 15 :(得分:1)

# 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

答案 16 :(得分:0)

此外,如果您已开始使用yarn,则代替npm
yarn remove <package-name>

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

这将是    - 从package.json以及中删除包裹    - 从项目的node-modules文件夹

中卸载它

答案 17 :(得分:0)

使用

npm uninstall <package_name>

卸载Express的示例

npm uninstall express

答案 18 :(得分:0)

如果您不需要在项目中使用软件包,则可以将其卸载并将其从项目的依赖项中删除。

要卸载任何本地软件包,请使用以下命令:

npm uninstall <package_name>

要卸载任何全局软件包,请使用以下命令:

npm uninstall -g <package_name>

要确认npm卸载已成功完成,请检查node_modules目录是否不再包含已卸载软件包的目录。

答案 19 :(得分:0)

最简单的解决方案是:

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

答案 20 :(得分:0)

更新npm 5:

npm 5.0.0开始,默认情况下已将已安装/未安装的模块作为依赖项添加/删除,因此不再需要--save选项。

运行

npm uninstall <package>

例如:

npm uninstall mongodb

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

答案 21 :(得分:0)

您还可以将以下内容用作速记:

npm un packageNamenpm rm packageName

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

答案 22 :(得分:0)

如果您是Windows,则以管理员身份运行CMD并输入npm -g uninstall <package name>

答案 23 :(得分:0)

卸载node module的命令:

npm uninstall <module_name>

这将从您当地的node-module目录中卸载模块,这不会影响应用程序。

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

中的依赖项

这里有一些不同的选项

npm uninstall <module_name> --savedependencies中的package.json删除模块。

npm uninstall <module_name> --save-devdevDependencies中的package.json删除模块。

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

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

答案 24 :(得分:0)

您可以手动删除节点模块。对于Windows,

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

  2. 删除不需要的节点模块。

  3. 别忘了在package.json中删除对模块的引用!您的项目可能仍与参考一起运行,但是可能会出现错误。您也不想在package.json中留下未使用的引用,这些引用以后会引起混淆。

答案 25 :(得分:0)

npm uninstall <package_name>

答案 26 :(得分:0)

别名可用于卸载 node_modules 包

un uninstall 的别名

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

答案 27 :(得分:-4)

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