随着前端的快速发展,前端的框架越来越趋向于工程化,所以对于包的使用也越来越多,为了优化性能和后期的维护更新,对于前端包的管理也尤为重要,本文主要阐述对node中包管理工具的理解和简单的使用方法。也欢迎各位大佬和同行们多多指教。😁😁😁
👉1. npm
安装npm
-
通过 node.js 网站安装node获取对应版本的npm
-
使用版本管理器nvm安装 node.js 和 npm
* 由于npm 和 node.js产品由不同的实体管理,更新和维护可能变得复杂,而且,nodejs安装过程将npm安装在一个只有本地权限的目录中,当试图全局运行包时,可能会导致权限错误
* 使用节点版本管理器(nvm)来安装npm。版本管理器将避免权限错误,轻松地切换npm和节点版本,并将解决更新Node.js和npm的复杂性 -
npm -v 查询当前本地安装的npm版本
-
npm install npm@6.14.14 -g 更新到指定版本
-
npm 安装版本过高无法支持当前低版本的node,会报错,但是可以正常打包。
npm WARN cli npm v9.8.1 does not support Node.js v14.15.4. This version of npm supports the following node versions:
^14.17.0 || ^16. 13.0 || >=18.0.0. You can find the latest version at https://nodejs.org/.
-
vue项目的package.json一般会注册npm的版本号,过低会导致无法打包(npm run build)vue项目
"dependencies": { "npm": "^9.8.1", }
"engines": { "node": ">= 10.13.0", "npm": ">= 5.0.0" },
-
npm和node版本对照官网:https://nodejs.org/zh-cn/download/releases/
缺点
- npm install拉node_modules比较慢,安装的时候包会在同一时间下载和安装,中途某个时候,一个包抛出了一个错误,但是npm会继续下载和安装包,因为npm会把所有的日志输出到终端,有关错误包的信息就会在一大堆npm打印的警告中丢失掉,并且可能永远不会注意到实际发生的错误。
- 同一个项目,安装的时候无法保持一致性,导致相同项目,有的人是ok的,有的人由于安装的版本不一致出现bug
- package.json文件中版本号代表不同的含义
- 4.0.3 安装指定的版本
- ~4.0.3 安装4.0.x中的最新版本
- ^4.0.3 表示安装4.X.X中最新的版本
👉2. cnpm(国内镜像文件 快)
npm install -g cnpm --registry=https://registry.npm.taobao.org (cnpm安装)
- npm安装模块时,是通过npm官网进行的,但是由于其服务器在国外,所以下载速度比较缓慢,容易请求超时,容易下载错误。
- 示例:
下载失败再次下载完成,但是不能够正常使用,这个这个问题是由于缓存引起的,可以清理上一次的下载缓存后再重新下载,因为你自己查看日志错误发生点不太现实,由此推出了cnpm - cnpm是npm其中的一个插件,由阿里巴巴的淘宝团队推出的国内镜像源。
👉3. yarn(并行下载 快)
- 安装 Yarn,提升依赖的安装速度
- npm install --global yarn
- yarn install yarn 安装
同样作为包管理工具,与npm显著不同的是,yarn是并行安装,二次安装下载的模块时,从缓存中取出;而npm是顺序安装,二次安装下载的模块的时,会重新在官网下载。
yarn和npm命令对比
- npm install / yarn
- npm install react --save / yarn add react
- npm uninstall react --save / yarn remove react
- npm install react --save-dev / yarn add react --dev
- npm update --save / yarn upgrade
👉4. pnpm / 安装 pnpm,提升依赖的安装速度
npm config set registry https://registry.npmjs.org npm install -g pnpm
- pnpm install 安装
pnpm,performant npm,意味"高性能的npm",在使用命令上和npm有一些区别,关键在于效率上,作为一款包管理器相较于其他包管理器的优势在于它拥有更高的安装速度和更高的磁盘利用率。
👉5. nvm管理node版本
每个项目的需求不同,进而不同项目必须依赖不同版本的NodeJS运行环境,方便的在同一台设备上进行多个node版本之间切换。
nvm下载
注意:安装nvm时不能安装任何node版本(如存在请删除后再安装nvm),再检查环境变量,如果还有node.js相关也删掉,保证系统无任何node.js 残留。
安装包下载地址:https://github.com/coreybutler/nvm-windows/releases
,windows系统下载nvm-setup.zip安装包
nvm安装
-
安装步骤
-
卸载当前电脑中的node版本
-
按照流程一步步安装nvm
-
确保nvm安装文件夹中一定要有node.js文件夹快捷方式
-
打开cmd,输入
nvm
当显示以下内容时,即安装成功
-
安装完毕后输入 nvm -v 查看版本。
-
nvm配置
-
打开nvm安装包里的setting.txt,进行设置
node_mirror: https://npm.taobao.org/mirrors/node/ npm_mirror: https://npm.taobao.org/mirrors/npm/
-
打开电脑的系统配置,设置全局变量
NVM_HOME D:\nvm\nvm NVM_SYMLINK D:\nvm\nvm\node.js
nvm命令
-
使用nvm控制nodejs的版本需要使用nvm安装对应版本的nodejs
-
常用的nvm命令:
nvm v
查询nvm的版本nvm h
显示帮助nvm install 版本号
安装对应版本的nodejsnvm install
安装最新版本的nodejsnvm install stable
安装最新稳定版本的nodejsnvm uninstall 版本号
卸载对应版本的nodejsnvm on
启用node.js版本管理nvm off
禁用node.js版本管理(不卸载任何东西)nvm ls / nvm list
显示所有安装的node.js版本nvm list available
显示可以安装的所有node.js版本nvm use 版本号
切换指定的nodejs版本
【注意】
nvm use <version>
切换完对应版本的nodejs后,使用 nvm ls / nvm list
会发现切换完的指定版本会出现*
,这就表示切换成功。
那么,如果版本前的*
不显示会怎么样,有什么解决方法?
*
不显示会导致node切换版本失败,node和npm也无法使用。
解决方法
在nvm安装文件夹中,一定要有node.js快捷方式文件,如果没有,可以将版本安装包
复制一份快捷方式,重命名为node.js
,问题迎刃而解。
nvm use 版本号
nvm重新切换nodejs的版本号
nvm list
查看选定的版本前是否有*
👉6. nrm / yrm 管理镜像文件工具
- 通过命令全局下载: cnpm install -g yrm
- yrm -h 获取命令作用指南
- yrm ls 显示所有的镜像源
- yrm use ‘源名称’ 更换镜像源
- yrm test ‘源名称’
目前常用镜像
npm ---- https://registry.npmjs.org/
cnpm — https://registry.nlark.com/
taobao - https://registry.npm.taobao.org
yarn — https://registry.yarnpkg.com/
tencent- https://mirrors.cloud.tencent.com/npm/
查看当前包管理镜像地址
yarn config get registry
npm config get registry
cnpm config get registry
pnpm config get registry
设置镜像源
全局使用
yarn config set registry https://registry.npm.taobao.org
cnpm config set registry https://registry.nlark.com/
临时在项目中使用
npm install --registry https://registry.npm.taobao.org
👉👉包管理总结
windows用户:推荐使用yarn/npm,可能cnpm/pnpm安装速度优于yarn/npm,但是可能造成诡异的 bug,比如项目运行不起来等