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.mzph.cn/news/31939.shtml

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

相关文章

【ASP.NET MVC】使用动软(五)(13)

一、问题 前文完成的用户登录后的首页如下&#xff1a; 后续账单管理、人员管理等功能页面都有相同的头部&#xff0c;左边和下边&#xff0c;唯一不同的右边内容部分&#xff0c;所以要解决重复设计的问题。 二、解决方法——使用布局页 在Views上右键添加新建项&#xff…

多维时序 | MATLAB实现ZOA-CNN-BiGRU-Attention多变量时间序列预测

多维时序 | MATLAB实现ZOA-CNN-BiGRU-Attention多变量时间序列预测 目录 多维时序 | MATLAB实现ZOA-CNN-BiGRU-Attention多变量时间序列预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 1.Matlab基于ZOA-CNN-BiGRU-Attention斑马优化卷积双向门控循环单元网络…

【云原生】Kubernetes控制器中DaemonSet与Job的使用

目录 DaemonSet 1 什么是 DaemonSet 2 使用 DaemonSet Job 1 什么是 Job 2 使用 Job 3 自动清理完成的 Job 控制器无法解决问题 DaemonSet 1 什么是 DaemonSet DaemonSet | Kubernetes DaemonSet 确保全部&#xff08;或者某些&#xff09;节点上运行一个 Pod 的副本…

eeglab(自用)

目录 1.加载、显示数据 2.绘制脑电头皮图 3.绘制通道光谱图 4.预处理工具 5.ICA去除伪迹 5. 提取数据epoch 1.加载、显示数据 观察事件值(Event values)&#xff1a;该数据集中包含2400个事件&#xff0c;每个事件指定了EEG.event结构的字段Type(类型)、position(位置)和…

检测新突破 | AlignDet:支持各类检测器自监督新框架(ICCV2023)

引言 论文链接&#xff1a;https://arxiv.org/abs/2307.11077 项目地址&#xff1a;https://github.com/liming-ai/AlignDet 这篇论文主要研究目标检测领域的自监督预训练方法。作者首先指出&#xff0c;当前主流的预训练-微调框架在预训练和微调阶段存在数据、模型和任务上的…

【技巧】如何设置Word文档部分内容“限制编辑”?

我们知道&#xff0c;Word文档可以设置“限制编辑”&#xff0c;也就是保护文档不被随意更改。 那如果只想保护文档中的部分内容&#xff0c;其他内容还是随意编辑更改&#xff0c;是否可以设置部分内容“限制编辑”&#xff1f;答案是可以的&#xff0c;下面小编来举例说明一…

uniapp 格式化时间刚刚,几分钟前,几小时前,几天前…

效果如图&#xff1a; 根目录下新建utils文件夹&#xff0c;文件夹下新增js文件&#xff0c;文件内容&#xff1a; export const filters {dateTimeSub(data) {if (data undefined) {return;}// 传进来的data必须是日期格式&#xff0c;不能是时间戳//将字符串转换成时间格式…

msvcp120.dll丢失的解决方法,Win11系统报错处理方法

在使用Windows11系统的时候&#xff0c;出现报错msvcp120.dll丢失我们需要怎么去修复它呢&#xff1f;msvcp120.dll是Windows操作系统中的一个重要的动态链接库文件&#xff0c;它包含了许多用于C程序的函数和类。然而&#xff0c;有时候我们可能会遇到msvcp120.dll丢失或损坏的…

UI美工设计的主要职责(合集)

UI美工设计的主要职责1 职责&#xff1a; 1、执行公司的规章制度及专业管理办法; 2、 负责重点项目的原型设计和产品流程设计、视觉设计&#xff0c;优化网站和移动端的设计流程和规范&#xff0c;制定产品 UI/UE规范及文档编写; 3、负责使用PS、AI、illustrator、MarkMan、…

matplotlib FormatStrFormatter设置坐标轴的标注为整数和小数【设置小数点的数目】

利用FormatStrFormatter 进行设置 1 设置为整数 import matplotlib.pyplot as plt from matplotlib.ticker import FormatStrFormatter# 创建一个图表 fig, ax plt.subplots()# 生成一些示例数据 x [1, 2, 3, 4, 5] y [1000, 2000, 3000, 4000, 5000]# 在 x 轴上设置刻度标…

【前端】CSS水平居中的6种方法

左右两边间隔相等的居中 文章目录 flex绝对定位margin:auto绝对定位margin:负值定位transformtext-align: center;margin: 0 auto;思维导图 flex display: flex;justify-content: center; <div classparent><div class"son"></div> </div>…

uni-app:实现点击按钮,进行数据累加展示(解决数据过多,导致出错)

效果 代码 核心代码 一、标签显示 <!-- 加载更多 --> <view class"load_more" v-if"info.length > pageNum * pageSize" tap"loadMore">加载更多 </view> v-if"info.length > pageNum * pageSize"&#xf…

辽宁线上3D三维虚拟工厂生产仿真系统应用场景及优势

工厂虚拟仿真是一种基于计算机技术和虚拟现实技术的数字化解决方案&#xff0c;它可以通过模拟工厂中的设备、流程和操作&#xff0c;来为工程师和操作人员提供了一个沉浸式的虚拟环境&#xff0c;帮助他们更好地了解和优化工厂生产过程。 工厂VR三维可视化技术为工业生产提供了…

ruby send call 的简单使用

refer: ruby on rails - What does .call do? - Stack Overflow Ruby使用call 可以调用方法或者proc m 12.method("") # > method gets the method defined in the Fixnum instance # m.class # > Methodm.call(3) #> 15 # 3 is passed inside the…

LeetCode150道面试经典题--验证回文串(简单)

1.题目 如果在将所有大写字符转换为小写字符、并移除所有非字母数字字符之后&#xff0c;短语正着读和反着读都一样。则可以认为该短语是一个 回文串 。 字母和数字都属于字母数字字符。 给你一个字符串 s&#xff0c;如果它是 回文串 &#xff0c;返回 true &#xff1b;否…

uniapp 微信小程序 封装公共的请求js(api版本)

一、新建api文件夹 在项目目录下创建api文件夹&#xff0c;内放files跟index.js文件夹&#xff0c;files文件夹内放每个页面对应的js请求接口 1、index.js /*** api接口的统一出口*/ const api {}; const requireComponent require.context(./files, false, /\.js$/) requi…

SpringCloud实用篇2——Nacos配置管理 Feign远程调用 Gateway服务网关

目录 1 Nacos配置管理1.1 统一配置管理1.1.1 在nacos中添加配置文件1.1.2 从微服务拉取配置 1.2 配置热更新1.2.1 方式一1.2.2 方式二&#xff08;推荐&#xff09; 1.3.配置共享 2 搭建Nacos集群2.1 集群结构图2.2 搭建集群2.2.1 初始化数据库2.2.2 下载nacos2.2.3 配置Nacos2…

竞赛项目 深度学习的智能中文对话问答机器人

文章目录 0 简介1 项目架构2 项目的主要过程2.1 数据清洗、预处理2.2 分桶2.3 训练 3 项目的整体结构4 重要的API4.1 LSTM cells部分&#xff1a;4.2 损失函数&#xff1a;4.3 搭建seq2seq框架&#xff1a;4.4 测试部分&#xff1a;4.5 评价NLP测试效果&#xff1a;4.6 梯度截断…

面部表情识别4:C++实现表情识别(含源码,可实时检测)

面部表情识别4&#xff1a;C实现表情识别(含源码&#xff0c;可实时检测) 目录 面部表情识别4&#xff1a;C实现表情识别(含源码&#xff0c;可实时检测) 1.面部表情识别方法 2.人脸检测方法 3.面部表情识别模型(Python) &#xff08;1&#xff09; 面部表情识别模型的训练…

printf %.*s 原来是这样

今天看代码时&#xff0c;看到这样一个printf&#xff0c;以前没见过这样的&#xff0c;也没这样用过&#xff0c;一下子还真不知道是什么意思&#xff1a; // Response is received. Print it struct mg_http_message *hm (struct mg_http_message *) ev_data; printf("…