NodeJS 的包管理工具

Mr.R0boter 于 2020-10-26 发布

NPM

npm 是 NodeJS 安装包自带的包管理工具,用于安装、卸载、更新、管理需要的第三方模块

国内下载第三方包的速度比较慢,所以安装好 NodeJS 后首先应该更换源地址,推荐使用淘宝的镜像源

临时使用:npm --registry https://registry.npm.taobao.org install packageName

永久更换:npm config set registry https://registry.npm.taobao.org

也可以使用第三方包nrm进行切换

nrm ls:显示可用的源列表 nrm use npmName:使用指定的源

初始化

进入项目根目录后,执行npm init会在项目根目录中引导创建一个package.json文件,用于记录该项目依赖的第三方包

当项目迁移或上线时,可以删除node_module文件夹,在新环境中使用npm install就可以根据package.json自动安装项目依赖的所有第三方包。

如果是上线生产环境,建议使用--production参数,只安装dependencies字段中的依赖包

在初始化之前可以设置一些初始化的默认值:

npm set init.author.email “xxx@xxx.com”

npm set init.author.name “xxx”

npm set init.license “MIT”

安装包

npm 安装第三方包时默认安装到当前项目下的node_module文件夹下,使用-g参数可以全局安装

一般推荐将命令行工具进行全局安装,项目依赖的包进行项目局部安装

npm install packageName:默认会下载最新版本的包

npm install packageName@x.x.x:安装指定版本的包

package.json中项目对模块的依赖有以下四种,以 1.1.0 版本为例:

package.json中一般有三个字段用于区分项目依赖的作用

  1. dependencies:生产依赖,即项目运行所依赖的第三方包。安装时使用--save-S
  2. devDependencies:开发依赖,即项目开发时需要使用辅助开发的第三方包,但生产环境不需要。安装时使用--save-dev-D
  3. optionalDependencies:可选依赖。安装时使用--save-optional-O

卸载包

npm uninstall packageName:用于卸载已经安装的第三方包

-g:表示全局卸载

-S/-D/-O分别表示卸载指定依赖作用的包,同时会从package.json中删除对于的包版本信息

更新

检查是否有更新:npm outdated

更新:npm update [-g]

其他

查看已安装的包:npm ls [-g]

查看 node_modules 的路径:npm root [-g]

清理缓存:npm cache clean

查看模块的依赖信息 源文件地址 贡献者信息:npm view packageName [dependencies | repository.url | contriburors ]

Yarn

Yarn 是由 Facebook、Google、Exponent 和 Tilde 联合推出了一个新的 JS 包管理工具 ,正如官方文档中写的,Yarn 是为了弥补 npm 的一些缺陷而出现的

npm 中对第三方依赖包的版本控制并不精确,从上面的说明中可以看到 npm 安装依赖包时版本的不确定性,而 yarn 正解决了这个问题,以及一些其他问题,但 npm 正在弥补这些问题

yarn 需要单独下载安装包进行安装

相对来说 yarn 的基础使用更加简洁

初始化:yarn init

安装包:yarn [add] packageName[@version] [--dev | --optional]

更新包:yarn upgrade [packageName]

不跟包名默认更新全部

移除包:yarn remove [packageName]

安装项目全部依赖:yarnyarn install