关于npm i出现的安全漏洞问题

关于npm i出现的安全漏洞问题

有时候通过git拉下来代码之后,使用npm i 会出现如图所示的问题:

在这里插入图片描述

虽然这些问题对于启动项目没有影响,但是作为一个前端还是要了解到底是什么一回事,探其究竟。

npm audit

在npm6更新了一个新指令-npm aduit命令,npm audit 命令会递归地分析依赖关系树以识别不安全的依赖,如果你在项目中使用了具有已知安全问题的依赖,就收到警告通知。该命令会在你更新或者安装了新的依赖包后自动运行。npm 官方专门维护了一个漏洞列表,当开发者或者专业的安全团队发现某个依赖包存在安全问题后就会上报给 npm 官方,然后官方会通知该项目开发者进行修复,修复完成后 npm 会把漏洞详细的描述信息、解决方案发布出来。
下面会对npm aduit命令使用后的漏洞信息进行讲解在这里插入图片描述

  • High: 表安全漏洞等级
  • Patched in: 表示可用的补丁版本
  • Package: 存在漏洞的包名称
  • Dependency of: 当前工程直接依赖的包名称
  • Path: 漏洞完整依赖路径
  • More info: 漏洞详情

关于npm audit fix 和npm audit fix --force

npm audit fix 是自动修复版本安全问题的,会版本修复到可用的安全版本,然后如果npm audit fix无效的,切记慎用npm audit fix --force 这个是强制将版本更新到最新可用的安全版本,如果盲目使用的话可能会造成依赖问题(如A包依赖B包,结果B包强制更新,依赖找不到了),所以需要使用npm audit查看具体问题与可解决的版本

`nvm`(Node Version Manager) 是一款用于管理 Node.js 的工具。通过 `nvm`, 用户可以轻松地在多个 Node.js 版本之间切换,并安装、卸载特定版本的 Node.js。 如果你想要退回至 npm 某一历史版本,通常不是直接通过 `nvm` 实现的,而是首先需要下载旧版本的 Node.js 安装包,然后通过命令行手动安装到你的系统上。这里以回退到某个指定的 Node.js 版本为例,说明如何操作: ### 步骤 1: 确定所需版本 首先,你需要确定想要回退到的具体版本。例如,假设你想回退到 Node.js v8.9.4 版本。 ### 步骤 2: 下载对应版本的安装包 访问 [Node.js 官方网站](https://nodejs.org/) 或第三方镜像站点如 [nodejs.org.cn](https://nodejs.org.cn/) 下载对应版本的安装包。对于 v8.9.4 版本,下载地址如下(请将实际链接替换为正确的 v8.9.4 链接): ```bash wget https://nodejs.org/dist/v8.9.4/node-v8.9.4-linux-x64.tar.xz ``` 或者如果你使用的是 Windows 系统,则下载对应的 Windows 文件。 ### 步骤 3: 解压缩并安装 解压下载的 tar 文件: ```bash tar -xvf node-v8.9.4-linux-x64.tar.xz ``` 然后移动文件夹到 `/usr/local` 目录下,或者设置你喜欢的位置: ```bash sudo mv node-v8.9.4-linux-x64 /usr/local/ ``` 接下来,创建一个软链到 `/usr/bin` 目录,以便你可以通过命令 `node` 来运行 Node.js: ```bash cd /usr/local/ sudo ln -s node-v8.9.4-linux-x64/bin/node /usr/bin/node ``` 最后,验证新安装的 Node.js 版本: ```bash node -v ``` 如果显示的是 `v8.9.4`,则表示已成功安装指定版本的 Node.js 并启用。 ### 使用注意事项 1. **兼容性**:确保回退的 Node.js 版本与你的项目兼容,特别是依赖的模块是否支持该版本。 2. **安全性**:老版本可能存在安全漏洞,因此定期更新到最新版 Node.js 是推荐的做法。 3. **环境隔离**:考虑使用虚拟化技术(如 Docker 或 Vagrant),为每个项目独立维护 Node.js 版本,以避免版本冲突和混乱。 ### 相关问题: 1. 怎样查看当前系统已经安装了哪些 Node.js 版本? 2. 如何从特定版本升级到更高版本的 Node.js? 3. 是否可以在不重启计算机的情况下切换 Node.js 版本? 以上步骤提供了一种基本的方法来回退到特定版本的 Node.js,确保了项目的稳定性和兼容性。不过,为了方便管理和版本控制,建议使用一些自动化工具或者持续集成/持续部署(CI/CD)流程来管理 Node.js 和其他依赖库的版本。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值