NodeJS-包管理器npm/yarn

每个工具或者开发语言都有相应的包管理器,好比 Ubuntu 的 apt-get、Centos 的 yum、Java 的 Maven 仓库等等。Node.js 中目前最出名的包管理器为 NPM 也是生态最好的。
对于我们业务开发也很受益,相同的东西不必重复去造轮子。

npm

NPM 是 Node.js 中的包管理器。允许我们为 Node.js 安装各种模块,这个包管理器为我们提供了安装、删除等其它命令来管理模块。这里有一点我们需要注意,我们必须要有一个 package.json 文件或 node_modules 目录安装模块到本地。
NPM 最好的一点是它会在本地存储我们所安装的依赖项,存在于 package.json 的 dependencies 对象里.
并且可以指名对应的版本。

由于npm源在国外,所以下载东西会存在延迟。
npm config set registry=https://registry.npm.taobao.org. // 设置taobao源
npm config set registry=http://registry.npmjs.org // 当然在npm publish时候需要切回

npm的使用

1. 新建一个文件   mkdir 文件名
2. 初始化   npm init 
3. 安装对应的包  或初始化项目 npm install

Q1: npm i安装命令中的-G -D -S的区别?

1.npm i xx -g
是npm install xx --global的缩写,将模块进行全局安装。
全局安装就是把模块安装到操作系统上,例如:npm i webapack -g,就是全局安装webpack,这样在操作系统下的任何一个目录下都可以使用webapcak所提供的命令。

2.npm i xx -D
是npm install xx --save-dev的缩写,对模块进行局部安装,模块写到devDependencies对象中。
局部安装的意思就是只针对于当前的项目,模块一般安装在项目文件夹下的node_modules文件夹下。
devDependencies对象,是我们开发的时候需要用到的一些包,只用于开发阶段,真正打包上线的时候不需要这些包,因为这些包都是用来打包代码的,帮助我们生成最终文件的。

3.npm i xx -S
是npm install xx --save 的缩写,对模块进行局部安装,模块写到dependencied对象当中。
dependencied对象是需要发布到生产环境中的,比如你要跑一个react的项目,就需要react.js来支持,react.js就需要跟随项目到最终的生产环境当中。
Q2: package.json文件中的版本号的特点?
"5.0.3",  // 5.0.3”表示安装指定的5.0.3版本
"~5.0.3",  //~5.0.3”表示安装5.0.X中最新的版本
"^5.0.3"  //^5.0.3”表示安装5.X.X中最新的版本

yarn

Yarn 是为了弥补 npm 的一些缺陷而出现的

// 1. 初始化项目
yarn / yarn init
// 2. 局部本地安装包
yarn add package-name
// 3. 全局本地安装包
yarn global add package-name
// 4. 在本地安装软件包作为开发依赖包
yarn add --dev package-name   //等价于npm中的 --save-dev 或 -D
// 5. 删除软件包
yarn remove package-name

yarn 的特点

  • 速度快

并行安装:无论 npm 还是 Yarn 在执行包的安装时,都会执行一系列任务。npm 是按照队列执行每个 package,也就是说必须要等到当前 package 安装完成之后,才能继续后面的安装。而 Yarn 是同步执行所有任务,提高了性能。
离线模式:如果之前已经安装过一个软件包,用Yarn再次安装时之间从缓存中获取,就不用像npm那样再从网络下载了

  • 安装版本统一

为了防止拉取到不同的版本,Yarn 有一个锁定文件 (lock file) 记录了被确切安装上的模块的版本号。每次只要新增了一个模块,Yarn 就会创建(或更新)yarn.lock 这个文件。这么做就保证了,每一次拉取同一个项目依赖时,使用的都是一样的模块版本。npm 其实也有办法实现处处使用相同版本的 packages,但需要开发者执行 npm shrinkwrap 命令。这个命令将会生成一个锁定文件,在执行 npm install 的时候,该锁定文件会先被读取,和 Yarn 读取 yarn.lock 文件一个道理。

  • 更简洁的输出

npm 的输出信息比较冗长。在执行 npm install 的时候,命令行里会不断地打印出所有被安装上的依赖。相比之下,Yarn 简洁太多:默认情况下,结合了 emoji直观且直接地打印出必要的信息,也提供了一些命令供开发者查询额外的安装信息

  • 多注册来源处理

所有的依赖包,不管他被不同的库间接关联引用多少次,安装这个包时,只会从一个注册来源去装,要么是 npm 要么是 bower, 防止出现混乱不一致。

  • 更好的语义化

yarn改变了一些npm命令的名称,比如 yarn add/remove,感觉上比 npm 原本的 install/uninstall 要更清晰。

指令对比

npm install === yarn 
npm install taco --save === yarn add taco
npm uninstall taco --save === yarn remove taco
npm install taco --save-dev === yarn add taco --dev
npm update --save === yarn upgrade
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值