NPM包的安装、更新、卸载

简介: NPM包的安装、更新、卸载

1、下载安装全局包

全局安装包允许您将包中的代码用作本地计算机上的一组工具。

要全局下载和安装软件包,请在命令行上运行以下命令:

npm install -g <package_name>

提示:如果您使用的是npm 5.2或更高版本,我们建议使用npx全局运行包。

如果出现EACCES权限错误,您可能需要使用版本管理器重新安装npm,或者手动更改npm的默认目录。

2、解决全局安装包时的EACCES权限错误

如果在尝试全局安装软件包

时看到EACCES错误,您可以:

  • 使用节点版本管理器重新安装npm(推荐)
  • 手动更改npm的默认目录

一般情况下是由于系统目录权限导致的,例如在系统盘(C盘)可能会有这种问题,这时候我们安装在C盘之外的其他盘下面(例如:D盘目录下)就可以解决。

2.1 重新安装NPM

在安装节点版本管理器之前,您不需要删除当前版本的npm或Node.js。

安装方式可以参考Node.js的安装

2.2 手动更改npm的默认目录

注意:本节不适用于Windows系统,Windows 最好重新安装一下,换一个安装目录。

1、先备份一下原来npm全局目录

2、在命令行上,在主目录中,为全局安装创建一个目录:

mkdir ~/.npm-global

3、配置npm以使用新的目录路径:

npm config set prefix '~/.npm-global'

4、在您喜欢的文本编辑器中,打开或创建一个~/.profile文件并添加以下行:

export PATH=~/.npm-global/bin:$PATH

5、在命令行中,更新系统变量:

source ~/.profile

6、要测试您的新配置,请在不使用sudo的情况下全局安装一个软件包:

npm install -g jshint

您可以使用相应的ENV变量(例如:如果您不想修改~/.profile):

NPM_CONFIG_PREFIX=~/.npm-global

最后,如果不想重新安装原来之前的包,也可以把之前的包,拷贝到当前目录下。

3、更新从注册表下载的包

更新从注册表下载的本地和全局包有助于保持代码和工具的稳定、可用和安全。

3.1 更新本地包

我们建议定期更新项目所依赖的本地包,以便在改进其依赖项时改进代码。

1、切换到项目的根目录,并确保它包含package.json文件:

cd /path/to/project

2、在项目根目录下,运行update命令:

npm update

3、要测试更新,请运行outdated命令

。不应该有任何输出。

npm outdated

3.2 更新全局安装的软件包

注意:如果您使用的是npm 版本过低,在更新包的会报错,建议更新到新版本的npm,然后再更新所有过时的全局包。

请考虑升级到最新版本的npm:

npm install npm@latest -g

3.3 确定哪些全局包需要更新

要查看哪些全局包需要更新,请在命令行上运行:

npm outdated -g --depth=0

3.4 更新单个全局包

要更新单个全局包,请在命令行上运行:

npm update -g <package_name>

3.5 更新所有全局安装的软件包

要更新所有全局包,请在命令行上运行:

npm update -g

4、在项目中使用NPM包

一旦你在node_modules中安装了一个包

,你就可以在你的代码中使用它了。

4.1 在项目中使用未限定作用域的包

Node.js模块

如果你正在创建一个Node.js模块,你可以在你的模块中使用一个包,方法是将它作为参数传递给require函数。

var deepMerge = require('deepmerge')
var test = deepMerge.all([[10, 20, 30], [40, 50]])
console.log('test: ', test);
// test:  [ 10, 20, 30, 40, 50 ]

package.json文件

package.json中,在dependencies下列出包。您可以选择包含语义版本

{
  "dependencies": {
    "package_name": "^1.0.0"
  }
}

4.2 在项目中使用限定了作用域的包

要使用有作用域的包,只要在使用包名的任何地方包含作用域即可。

Node.js模块

var projectName = require("@scope/package-name")

package.json文件

package.json中:

{
  "dependencies": {
    "@scope/package_name": "^1.0.0"
  }
}

5、使用不推荐使用的软件包

如果您安装了一个软件包,并且它打印了一条弃用消息,我们建议您按照说明操作(如果可能)。这可能意味着更新到新版本,或者更新包依赖项。

弃用消息并不总是意味着软件包或版本不可用;这可能意味着该包未被维护并且将不再由发布者更新。

6、卸载包和依赖项

如果您不再需要在代码中使用某个包,我们建议您卸载它并将其从项目的依赖项中移除。

6.1 卸载本地软件包

从node_modules目录中删除本地包

要从node_modules目录中删除包,请在命令行中使用uninstall命令

。如果包有作用域,则包括作用域。

这将卸载一个包,完全删除npm代表它安装的所有内容。它还从package.json中的dependencies、devDependencies、optionalDependencies和peerDependencies对象中删除包。此外,如果您有npm-shrinkwrap.json或package-lock.json,npm也会更新这些文件。

无作用域包
npm uninstall <package_name>
作用域包
npm uninstall <@scope/package_name>

6.2 删除本地包而不从package.json中删除

使用--no-save将告诉npm不要从package.jsonnpm-shrinkwrap.jsonpackage-lock.json文件中删除包。

--save-S将告诉npm从package.jsonnpm-shrinkwrap.jsonpackage-lock.json文件中删除该包。这是默认值,但如果您的save=false文件中有例如.npmrc,则可能需要使用此选项。

6.3 卸载全局软件包

要卸载未限定作用域的全局软件包,请在命令行中使用带有uninstall标志的-g命令。如果包有作用域,则包括作用域。

无作用域包
npm uninstall -g <package_name>
作用域
npm uninstall -g <@scope/package_name>


相关文章
|
20天前
|
JavaScript 前端开发 Java
npm学习一:npm 包管理工具 学习、使用。
这篇文章介绍了npm的基础知识和常用命令,包括安装包、查看包信息、管理依赖等操作,并提供了如何删除npm安装的镜像以及如何彻底删除node_modules文件夹的具体步骤。
48 2
|
3月前
|
缓存 资源调度 持续交付
在清空NPM缓存后,检查是否所有依赖都已正确安装
在清空NPM缓存后,检查是否所有依赖都已正确安装
|
19天前
|
JavaScript 前端开发 Java
npm学习一:npm 包管理工具 学习、使用。
这篇文章是关于npm包管理工具的学习、使用指南,包括npm概述、基础命令和如何安装webpack。
35 3
npm学习一:npm 包管理工具 学习、使用。
|
20天前
|
资源调度 前端开发 JavaScript
React 安装(NPM)
10月更文挑战第6天
50 1
|
20天前
|
缓存 资源调度 持续交付
在清空NPM缓存后,我如何检查是否所有依赖都已正确安装?
【10月更文挑战第5天】在清空NPM缓存后,我如何检查是否所有依赖都已正确安装?
|
13天前
|
缓存 JavaScript 前端开发
拿下奇怪的前端报错(三):npm install卡住了一个钟- 从原理搞定安装的全链路问题
本文详细分析了 `npm install` 过程中可能出现的卡顿问题及解决方法,包括网络问题、Node.js 版本不兼容、缓存问题、权限问题、包冲突、过时的 npm 版本、系统资源不足和脚本问题等,并提供了相应的解决策略。同时,还介绍了开启全部日志、使用替代工具和使用 Docker 提供 Node 环境等其他处理方法。
111 0
|
14天前
|
资源调度 前端开发 安全
前端实战:基于Verdaccio搭建私有npm仓库,轻松上传与下载自定义npm插件包
前端实战:基于Verdaccio搭建私有npm仓库,轻松上传与下载自定义npm插件包
26 0
9-14|npm install --global windows-build-tools 安装太慢了,能够指定国内源
9-14|npm install --global windows-build-tools 安装太慢了,能够指定国内源
|
2月前
|
数据安全/隐私保护
发布一个npm包
发布一个npm包
|
3月前
|
敏捷开发 缓存 前端开发
阿里云云效产品使用合集之前端打包时npm安装卡住一般是什么导致的
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。