一. 包 package
<1> 什么是包?
包【package】代表了一组特定功能的源码组合。node.js里的第三方模块又叫做包。
<2> 包的来源:
由第三方个人或者团队开发出来的!!
<3> why need 包?
二. 包管理工具
包管理工具管理包的应用软件,可以对包进行下载安装、更新、删除、上传等操作!!
- 借助包管理工具,可以快速开发项目,提升开发效率。
- 包管理工具是一个通用的概念,很多编程语言都有自己的包管理工具。
前端常用的包管理工具:
- npm
- yarn
- cnpm
<1> npm
npm【Node Package Manager】,这个包管理工具会随着 Node.js 的安装包一起被安装到用户的电脑上。
(1)初始化 npm init
此命令可以把一个普通文件夹变为包,区别于普通文件夹与包。
- 创建一个空目录,然后以此目录作为终端命令行工作目录,执行
npm init - 执行该命令后,会以交互式的方式创建
package.json文件
注意:
- 包名不能使用中文、大写,默认是文件夹的名字
(2) package.json文件
该文件是包的配置文件,每个包都要有该文件。
(3) 下载/安装包
npm install/i xxx[@版本号]
- 开发依赖vs生产依赖 npm i -S / -D xxx
package.json配置文件中的devDependencies节点会记录开发依赖的安装包;dependencies节点会记录生产依赖的安装包
- 全局安装 npm i -g xxx
可以参考包的官方文档来确认哪些包适合全局安装!!eg:
nodemon该包适合全局安装,作用是更新保存后自动重启 node 应用程序
(4) 删除包
-
局部删除
npm remove/r xxx -
全局删除
npm remove/r -g xxx
(5) 配置命名别名
在
package.json文件中的scripts属性中进行配置!!
- 配置完成后,可以通过 npm run xxx 启动命令【stsrt 可以省略 run,直接 npm start】
- npm run 有自动向上级目录查找的情况,即如果执行 npm run server,但是该目录下的
package.json文件中没有配置server命令,就会去查找上一级的目录下的package.json文件!!!
(6) npm 使用淘宝镜像
第一种方法: 【直接配置】
npm config set registry https://registry.npmmirror.com/
第二种方法: 【使用工具 nrm 】
npm i -g nrm
nrm use taobao //修改镜像
npm config list // 检查是否修改成功
<2> cnpm
cnpm是一个淘宝构建的npmjs.com的完整镜像,也称为【淘宝镜像】,cnpm 的服务器部署在国内的阿里云服务器上,可以提高包的下载速度!!官方也提供了一个全局包管理工具--->cnpm,操作命令与 npm 大体相同
<3> yarn
yarn是由 facebook 在2016年推出的新的 JavaScript 包管理工具。
特点:
-
速度超快
yarn 会缓存每个下载过的包,所以再次使用时无需下载 yarn 是并行下载,因此安装速度更快!!
npm i -g yarn
<4> npm vs yarn
两者的锁文件不同:
-
npm
package-lock.json -
yarn
yarn.lock
注意:
- 包管理工具不要混用!!!
<5> 补:
许多语言都有包管理工具,如下:
除了编程语言有包管理工具之外,操作系统层面也存在包管理工具,不过此时的包就是软件包了【eg:QQ...】
三. nvm 【node 的版本管理工具】
下载 nvm: