邂逅npm | nrm | cnpm | yarn

178 阅读5分钟

01-NPM包安装方式

  • 全局安装

    npm install -g 包名	(默认安装最新版本)
    npm uninstall -g 包名
    npm update -g 包名 (更新失败可以直接使用install)
    
  • 本地安装

    npm install 包名
    npm uninstall 包名
    npm update 包名
    

首先我们可以通过npm config ls来查看npm的相关配置

npm config ls

里面的prefix就是全局安装的地址

之后我们进入全局安装的地址

默认情况进入这个地方毛都没有(但是我之前用过所以这里有很多包)

我们先安装一个nrm包来进行演示一下

我们再进入文件里面查看是否安装成功

现在我们试一下删除包

开源包的地址: www.npmjs.com/

如果我们想要安装1.1.0的版本,我们可以通过

npm install -g nrm@1.1.0

因为我们安装的不是最新版本,如果最新版本更新了,我们想安装最新的版本可以对当前版本进行到最新版本

npm update -g nrm

但是有些时候update会更新失败,那么我们还有其他方法进行更新

我们先卸载nrm,再安装,来示范一下

update容易更新失败,我们只需要再安装一下,因为安装默认安装的是最新版本,所以就可以更新

02-初始化本地包

npm init 初始化package.json文件
npm install 包名 --save 
npm install 包名 --save-dev

包描述文件 package.json, 定义了当前项目所需要的各种模块,以及项目的配置信息(比如名称、版本、许可证等元数据)

将项目拷贝给其它人, 或者发布的时候, 我们不会将node_modules也给别人, 因为太大

一般是把package.json文件发给别人,然后别人通过npm install 来安装所需要的包

npm i               所有的包都会被安装
npm i --production  只会安装dependencies中的包
npm i --development  只会安装devDependencies中的包

03-什么是nrm?

由于npm默认是去国外下载资源,所以对于国内开发者来说下载速度很慢

所以有人写了nrm工具,允许你将资源下载地址从国外切换到国内

npm install -g nrm 安装nrm
nrm --version 查看是否安装成功
nrm ls 查看允许切换的资源地址
npm use 切换地址 将下载地址切换到其他地址

PS:淘宝资源地址和国外的地址内容完全同步,。淘宝镜像与官方同步频率目前为 10分钟 一次以保证尽量与官方服务同步*

04-什么是cnpm?

由于npm默认回去国外下载资源, 所以对于国内开发者来说下载会比较 cnpm 就是将下载源从国外切换到国内下载, 只不过是将所有的指令从npm变为cnpm而已

npm install cnpm -g –registry=https://registry.npm.taobao.org  安装CNPM
cnpm -v  查看是否安装成功
使用方式同npm, 例如: npm install jquery 变成cnpm install jquery 即可

05-什么是YARN?

Yarn是由Facebook、Google、Exponent 和 Tilde 联合推出了一个新的 JS 包管理工具 Yarn 是为了弥补 npm5.0之前 的一些缺陷而出现的

06-NPM的的缺陷

  • npm install的时候巨慢
    • npm 是按照队列执行每个 package,也就是说必须要等到当前 package 安装完成之后,才能继续后面的安装(同步)
  • 同一个项目,npm install的时候无法保持一致性
    • “5.0.3”表示安装指定的5.0.3版本
    • “~5.0.3”表示安装5.0.X中最新的版本
    • “^5.0.3”表示安装5.X.X中最新的版本

06-Yarn的优点

  • 速度快
    • 并行安装: 而 Yarn 是同步执行所有任务,提高了性能(异步)
    • 离线模式:如果之前已经安装过一个软件包,用Yarn再次安装时之间从缓存中获取,就不用像npm那样再从网络下载了
  • 安装版本统一
    • 为了防止拉取到不同的版本,Yarn 有一个锁定文件 (lock file) 记录了被确切安装上的模块的版本号

07-Yarn安装

npm install -g yarn
yarn --version

08-Yarn使用

  • 初始化包

    • npm init -y
      yarn init -y
      
  • 安装包

    • npm install xxx --save
      yarn add xxx
      npm install xxx --save-dev
      yarn add xxx --dev
      
  • 移除包

    • npm uninstall xxx
      yarn remove xxx
      
  • 更新包

    • npm update xxx
      yarn upgrade xxx --latest
      
  • 全局安装

    • npm install -g xxx
      npm uninstall -g xxx
      npm update -g xxx
      
      yarn global add xxx
      yarn global upgrade xxx
      yarn global remove xxx
      

这里我们就不做Yarn的演示了

09-总结

开源包的地址: https://www.npmjs.com/
全局比本地多加一个 -g
npm install 包名 安装最新版本的包
npm uninstall 包名 卸载包
npm install 包名@版本号 安装指定包的版本
npm init 初始化package.json文件
npm install 包名 --save 安装生产环境时使用的包
npm install 包名 --save-dev 安装开发环境时使用的包\
发送包文件,不会把node_modules包发给别人,直接把package.json文件发给别人,别人通过指令安装
npm i               所有的包都会被安装
npm i --production  只会安装dependencies中的包
npm i --development  只会安装devDependencies中的包

但是我个人不推荐使用cnpm,推荐nrm把国外的下载资源切换到国内,然后使用淘宝的资源地址

在npm5.0之前,yarn的优势特别明显.但是现在NPM已经更新到6.9.x甚至7.x了,随着NPM的升级NPM优化甚至超越Yarn,所以个人还是建议使用NPM