Node.js第三方模块
【图书介绍】《Node.js+MongoDB+Vue.js全栈开发实战》-CSDN博客
《Node.js+MongoDB+Vue.js全栈开发实战(Web前端技术丛书)》(邹琼俊)【摘要 书评 试读】- 京东图书 (jd.com)
2.3.1 什么是第三方模块
别人写好的、具有特定功能的、我们能直接使用的模块即为第三方模块。由于第三方模块通常由多个文件组成并被放置在一个目录中,因此又叫包。
第三方模块有两种存在形式:
- 以.js文件的形式存在,提供实现项目具体功能的API接口。
- 以命令行工具形式存在,辅助项目开发。
2.3.2 获取第三方模块
我们可以从https://www.npmjs.com/中获取第三方模块,它是第三方模块的存储和分发仓库。
获取第三方模块主要有npm(node package manager)和yarn两种方式,接下来分别对这两种方式进行讲解。
1. npm
当我们安装Node.js的时候,会自动安装npm工具,它是Node.js的第三方模块管理工具。
由于npm安装插件默认是从国外服务器下载,这可能会受到网络环境的影响,导致下载速度慢并且有时可能会出现连接异常。很多开发者希望能有一个在中国境内的npm服务器以提升安装速度。为了满足这一需求,乐于分享的淘宝团队(属于阿里巴巴旗下的阿里云业务)创建了一个完整的npm镜像。根据官方网站的说法:“这是一个完整npmjs.org镜像,你可以用此代替官方版本(只读),同步频率目前为10分钟一次,以保证尽量与官方服务同步。”这意味着开发者可以使用阿里云在中国境内部署的服务器来安装Node.js包,从而获得更快的下载速度和更稳定的服务体验。
1)使用淘宝镜像
(1)使用阿里定制的cnpm命令行工具代替默认的npm,输入下面代码进行安装:
npm install -g cnpm --registry=https://registry.npm.taobao.org
(2)检测cnpm版本:
cnpm -v
如果安装成功可以看到cnpm的基本信息。
(3)将淘宝镜像设置成全局的下载镜像:
直接在命令行设置
npm config set registry https://registry.npm.taobao.org
配置后可以通过下面方式来验证是否成功:
npm config get registry
如果看到运行结果是:
C:\Users\zouqi>npm config get registry
https://registry.npm.taobao.org/
说明我们已经将npm的镜像改为了淘宝镜像。
使用npm下载和卸载模块的命令如下:
- 下载:npm install模块名称。
- 卸载:npm unintall package模块名称。
该命令在哪里执行就会把包下载到哪里,默认会下载到node_modules目录中。node_modules会自动生成,我们不要改这个目录,当然也不支持改。
2)全局安装与本地安装
在使用npm进行包管理时,添加-g参数表示全局安装,这通常用于那些提供命令行工具的包。而如果没有添加-g参数,则默认进行本地安装,这适用于作为项目依赖的库文件。
npm install和npm i命令是等价的,它们都可以用来安装包。
在npm版本5.0.0之后,--save参数已经不是必需的,因为默认行为已变为将依赖信息添加到 package.json文件的dependencies部分。这些依赖被视为生产阶段的依赖,意味着它们是项目运行时所必需的,即使在程序上线后也是如此。
--save-dev或-D参数用来将包信息添加到devDependencies部分。这些依赖是在开发阶段需要的,例如测试框架或构建工具,它们不会在生产环境中被安装或使用。
2. yarn
yarn是由Facebook、Google、Exponent和Tilde联合推出的一个新的JS包管理工具,它具有如下特点:
(1)超级快。yarn缓存了每个下载过的包,所以再次使用时无须重复下载;同时利用并行下载以最大化资源利用率,因此安装速度更快。
(2)超级安全。在执行代码之前,yarn会通过算法校验每个安装包的完整性。
(3)超级可靠。使用详细、简洁的锁文件格式和明确的安装算法,yarn能够保证在不同系统上无差异地工作。
Yarn的安装示例如下:
yarn安装
npm install -g yarn
查看yarn版本
yarn –version 或者yarn –v
yarn设置淘宝镜像
yarn config set registry https://registry.npm.taobao.org –g
yarn换成原来的镜像
yarn config set registry http://registry.npmjs.org/
yarn常用命令如下:
(1)初始化项目:
yarn init // 同npm init,执行输入信息后,会生成package.json文件
(2)安装包:
yarn install //安 装package.json里的所有包,并将包及其所有依赖项保存进yarn.lock
yarn add [package] // 在当前的项目中添加一个依赖包,会自动更新到package.json和yarn.lock文件中
// 不指定依赖类型时默认安装到dependencies里,当然也可以指定依赖类型
yarn add --dev/-D // 安装到 devDependencies
(3)运行脚本:
yarn run脚本名称
例如yarn run dev,用来执行在package.json中scripts属性下定义的脚本。
3. npm和yarn的区别
1)npm
用过npm的都知道,npm装包非常慢,即使使用了镜像也还是很慢。当我们删除node_modules再重新安装的时候更是慢得难以接受。有时同一个项目在安装的时候也无法保持一致性。
npm5.0之后做了一些改进。
- 新增了类似yarn.lock的package-lock.json。
- git依赖支持优化:这个特性在需要安装大量内部项目(例如没有自建源的内网开发)或需要使用某些依赖的未发布版本时很有用。在npm5之前可能需要使用指定commit_id的方式来控制版本。
- 文件依赖优化:在之前的版本,如果将本地目录作为依赖来安装,将会把文件目录作为副本复制到node_modules中,而在npm5中,将改为使用创建symlinks的方式来实现(使用本地tarball包除外),不再执行文件拷贝,这将会提升安装速度。目前yarn还不支持该功能。
通过以上一系列改进,npm5在速度和使用上确实有了很大提升,值得尝试,不过它还是没有超过yarn。
2)yarn
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和yarn两者的不同之处在于,yarn默认会生成这样的锁定文件,而npm要通过shrinkwrap命令生成npm-shrinkwrap.json文件,只有当这个文件存在的时候,packages版本信息才会被记录和更新。
- 更简洁的输出:npm的输出信息比较冗长。在执行npm install<package>的时候,命令行里会不断地打印出所有被安装上的依赖。相比之下,yarn简洁太多:默认情况下,yarn结合emoji直观且直接地打印出必要的信息,此外也提供了一些命令供开发者查询额外的安装信息。
- 多注册来源处理:所有的依赖包,不管它被不同的库间接关联引用多少次,在安装这个包时,都只会从一个注册来源去安装,要么是npm要么是bower,防止出现混乱不一致。
- 更好的语义化:yarn改变了一些npm命令的名称,比如yarn add/remove,感觉上比npm原本的install/uninstall要更清晰。yarn和npm命令的对比如表2-1所示。
原文地址:https://blog.csdn.net/brucexia/article/details/144408055
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!