NPM包的安装、更新、卸载

目录

1、下载安装全局包

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

2.1 重新安装NPM

2.2 手动更改npm的默认目录

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

3.1 更新本地包

3.2 更新全局安装的软件包

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

3.4 更新单个全局包

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

4、在项目中使用NPM包

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

Node.js模块

package.json文件

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

Node.js模块

package.json文件

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

6、卸载包和依赖项

6.1 卸载本地软件包

从node_modules目录中删除本地包

无作用域包 

 作用域包 

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

6.3 卸载全局软件包

无作用域包 

作用域


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>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/85368.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

VLAN监控及常见问题排查

局域网&#xff0c;我们通常称为LAN&#xff0c;是一种由基于同一地理位置的设备组成的网络&#xff0c;可实现它们之间的通信&#xff0c;局域网的虚拟对应物是虚拟局域网或 VLAN。VLAN 增强了 LAN&#xff0c;提供了进行更改的灵活性、更高的可扩展性和更好的安全性。 使用 …

使用 Gradio 构建生成式 AI 应用程序(一): 图片内容读取app

今天我们来学习DeepLearning.AI的在线课程&#xff1a;Building Generative AI Applications with Gradio&#xff0c;该课程主要讲述利用gradio来部署机器学习算法应用程序, 今天我们来学习第一课&#xff1a;Image captioning app&#xff0c;该课程主要讲述如何从图片中读取…

JavaScript 操作历史记录api怎样使用 JavaScript

JavaScript 操作历史记录api怎样使用 JavaScript History 是 window 对象中的一个 JavaScript 对象&#xff0c;它包含了关于浏览器会话历史的详细信息。你所访问过的 URL 列表将被像堆栈一样存储起来。浏览器上的返回和前进按钮使用的就是 history 的信息。 History 对象包含…

报错注入(主键重复)攻击原理

基本原理 利用数据表中主键不能重复的特点&#xff0c;通过构造重复的主键&#xff0c;使得数据库报错&#xff0c;并将报错结果返回到前端。 SQL说明函数 以pet数据表为例进行说明 rond(): 返回[0,1)区间内的任意浮点数。 count(): 返回每个组的列行数。 如&#xff0…

IDEA新建类时自动设置类注释信息,署名和日期

IDEA设置路径 File --> Settings --> Editor --> File and Code Templates --> Include --> File Header 官方模板 这里 ${USER} 会读取计算机的用户名 ${DATE}是日期 ${TIME}是时间 /*** Author ${USER}* Date ${DATE} ${TIME}* Version 1.0*/

简单易懂的Transformer学习笔记

1. 整体概述 2. Encoder 2.1 Embedding 2.2 位置编码 2.2.1 为什么需要位置编码 2.2.2 位置编码公式 2.2.3 为什么位置编码可行 2.3 注意力机制 2.3.1 基本注意力机制 2.3.2 在Trm中是如何操作的 2.3.3 多头注意力机制 2.4 残差网络 2.5 Batch Normal & Layer Narmal 2.…

智安网络|网络安全:危机下的创新与合作

随着信息技术的迅猛发展和互联网的普及&#xff0c;我们进入了一个高度网络化的社会。网络在提供便利和连接的同时&#xff0c;也带来了许多安全隐患和挑战。 一、网络安全的危险 **1.数据泄露和隐私侵犯&#xff1a;**网络上的个人和机构数据存在遭受泄露和盗取的风险&#…

clickhouse 删除操作

OLAP 数据库设计的宗旨在于分析适合一次插入多次查询的业务场景&#xff0c;市面上成熟的 AP 数据库在更新和删除操作上支持的均不是很好&#xff0c;当然 clickhouse 也不例外。但是不友好不代表不支持&#xff0c;本文主要介绍在 clickhouse 中如何实现数据的删除&#xff0c…

go语言的database/sql结合squirrel工具sql生成器完成数据库操作

database/sql database/sql是go语言内置数据库引擎&#xff0c;使用sql查询数据库&#xff0c;配置datasource后使用其数据库操作方法对数据库操作&#xff0c;如下&#xff1a; package mainimport ("database/sql""fmt"_ "github.com/Masterminds…

Cesium 1.107+ 自定义类支持 readyPromise

由于cesium 1.107 的图元(Primitive) 已经不支持 readyPromise。 但是个人感觉比较好用,于是用了一个插件来实现。 用法: // 定义图元并添加,和之前一样 const boxGreen new BoxPrimitive({color: "#ff0000" }) viewer.scene.primitives.add(boxGreen.primitive)/…

【Spring专题】Bean的声明周期流程图

前言 我向来不主张【通过源码】理解业务&#xff0c;因为每个人的能力有限&#xff0c;甚至可能会因为阅读错误导致出现理解上的偏差&#xff0c;所以我决定&#xff0c;还是先帮大家【开天眼】&#xff0c;先整体看看流程图&#xff0c;好知道&#xff0c;Spring在写源码的过…

一文讲述什么是数字孪生?

当前世界正处于百年未有之大变局&#xff0c;数字经济在各国已成为经济发展的重点。数字经济也是我国社会经济发展的必经之路。 近些年&#xff0c;大数据、人工智能、数字孪生等技术的发展促使技术与国内各产业进一步融合&#xff0c;从而推动了各产业在智能化、数字化等方面…

程序猿成长之路之密码学篇-分组密码加密模式及IV(偏移量)的详解

Cipher.getInstance("AES/ECB/PKCS5Padding"); Cipher cipher Cipher.getInstance("AES/CBC/PKCS5Padding"); 在进行加解密编程的时候应该有很多小伙伴接触过以上的语句&#xff0c;但是大伙儿在编码过程中是否了解过ECB/CBC的含义、区别以及PKCS5Padding…

10个AI绘图生成器让绘画更简单

AI不仅影响商业和医疗保健等行业&#xff0c;还在创意产业中发挥着越来越大的作用&#xff0c;开创了AI绘画生成器新时代。在绘画领域当然也是如此&#xff0c;与传统的绘画工具不同&#xff0c;AI人工智能时代的绘画工具是全自动的、智能的&#xff0c;甚至可以说是“傻瓜式”…

Three.js阴影

目录 Three.js入门 Three.js光源 Three.js阴影 Three.js纹理贴图 使用灯光后&#xff0c;场景中就会产生阴影。物体的背面确实在黑暗中&#xff0c;这称为核心阴影&#xff08;core shadow&#xff09;。我们缺少的是落下的阴影&#xff08;drop shadow&#xff09;&#…

【ultralytics仓库使用自己的数据集训练RT-DETR】

ultralytics仓库使用自己的数据集训练RT-DETR RT-DETR由百度开发&#xff0c;是一款尖端的端到端物体检测器&#xff08;基于transformer架构&#xff09;&#xff0c;在提供实时性能的同时保持高精度。它利用视觉变换器&#xff08;ViT&#xff09;的力量&#xff0c;通过解耦…

水库大坝安全监测系统实施方案

一、方案概述 水库大坝作为特殊的建筑&#xff0c;其安全性质与房屋等建筑物完全不同&#xff0c;并且建造在地质构造复杂、岩土特性不均匀的地基上&#xff0c;目前对于大坝监测多采用人工巡查的方法&#xff0c;存在一定的系统误差&#xff0c;其工作性态和安全状况随时都在变…

SSH连接阿里服务器搭建JAVA环境

SSH连接 1.IP录入 2.账户登录 3.右下角点击连接即可 安装JDK 1.查看是否存在jdk yum search jdk 2.安装JDK&#xff08;不存在时&#xff09; yum -y install java-1.8.0-openjdk* 3.安装完成 4.测试成功否 java -version 安装文件上传 yum -y install lrzsz 上传文件…

[git] git基础知识

git是一个免费的、开源的分布式版本控制系统&#xff0c;可以快速高效地处理从小型到大型的各种项目 git易于学习&#xff0c;性能极快 什么是版本控制&#xff1f; 版本控制是一种记录文件内容变化&#xff0c;以便将来查阅特定版本修订情况&#xff0c;可以记录文件修改历史…

微信开发之获取收藏夹列表的技术实现

简要描述&#xff1a; 获取收藏夹内容 请求URL&#xff1a; http://域名地址/weChatFavorites/favSync 请求方式&#xff1a; POST 请求头Headers&#xff1a; Content-Type&#xff1a;application/jsonAuthorization&#xff1a;login接口返回 参数&#xff1a; 参数…