包管理器
包管理器又称软件包管理系统,是一种工具,它允许用户在操作系统上安装、删除、升级、配置和管理软件包。
NPM
NPM(Node Package Manager), Node 的包管理器,也是一个应用程序。安装完 nodejs 之后会自动安装 npm。
Node.js 的包基本遵循 CommonJS 规范,将一组相关的模块组合在一起,形成一个完整的工具。 通过 NPM 可以对 Node 的工具包进行搜索、下载、安装、删除、上传。借助别人写好的包,可以让我们的开发更加方便。
node_modules
目录是不能进入 Git 仓库的
查看 npm 的版本 npm -v
。
初始化 npm init
或 npm init --yes
。
运行后会创建 package.json
配置文件。
{
"name": "1-npm",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC"
}
生成的包名不能使用中文、大写!
不能使用 npm 作为包的名字
搜索包 npm search jquery
或 npm s jquery
一般在搜索工具包的时候,会到 https://www.npmjs.com/ 搜索
安装工具包 npm install jquery
或 npm i jquery
# 安装并在 package.json 中保存包的信息(dependencies 属性)
npm install jquery --save
npm install jquery -S
# 安装并在 package.json 中保存包的信息(devDependencies 属性)
npm install babel --save-dev
npm install babel -D
全局安装 npm install less -g
npm install nodemon -g
全局安装一般用于安装全局工具,如 cnpm
,yarn
,webpack
,gulp
等。
全局安装命令在任意的命令行下, 都可以执行。
npm root -g
查看全局安装的目录的位置,全局命令的安装位置 C:\Users\你的用户名\AppData\Roaming\npm
安装依赖 根据 package.json 中的依赖声明, 安装工具包
npm i
npm install
npm i --production
// 只安装 dependencies 中的依赖
移除包 npm remove jquery
使用流程
- 定位到一个文件夹下(新建或者已经存在的)
- 启动命令行将工作目录定位到第一步的文件中的
- 运行
npm init
(只需要运行一次) - 运行
npm i 包名
安装工具包
npm清除缓存
npm i 安装包错误的时候, 可以尝试运行 npm cache clean
使用npm执行脚本
- 编写js脚本
- 配置package.json(如果没有package.json, 则运行 npm init)
- 添加script中的属性
{
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"server": "node app.js"
}
} - 配置
package.json
后就可以在命令行中使用npm run server
运行 app.js
封装NPM包
创建自己的 NPM 包可以帮助代码进行迭代进化,使用步骤也比较简单
- 修改为官方的地址
npm config set registry https://registry.npmjs.org/
- 创建文件夹,并创建文件
index.js
, 在文件中声明函数,使用module.exports
暴露 - npm 初始化工具包,
package.json
填写包的信息 - 账号注册(激活账号),完成邮箱验证
- 命令行下 『
npm login
』 填写相关用户信息 (一定要在包的文件夹下运行) - 命令行下『
npm publish
』 提交包 👌
- npm 有垃圾检测机制,如果名字简单或做测试提交,很可能会被拒绝提交
- 可以尝试改一下包的名称来解决这个问题
- 升级 NPM 包,需要修改
package.json
中的版本号修改,只需要执行npm publish
就可以能提交- 修改包代码
- 修改
package.json
中版本号 npm publish
提交
删除NPM包 npm unpublish 包名 --force
npm配置镜像地址
//淘宝镜像
npm config set registry https://registry.npm.taobao.org
//官方镜像
npm config set registry https://registry.npmjs.org/
在发布工具的时候, 一定要将仓库地址修改为官方的地址
CNPM
cnpm 是淘宝对国外 npm 服务器的一个完整镜像版本,也就是淘宝 npm 镜像,网站地址 http://npm.taobao.org/
安装 npm install -g cnpm --registry=https://registry.npm.taobao.org
使用 配置完成后,就可以使用 cnpm 命令来管理包,使用方法跟 npm 一样 cnpm install lodash
cnpm 安装时一定要加 -S 选项
yarn
yarn 是 Facebook 开源的新的包管理器,可以用来代替 npm。
yarn 相比于 npm 有几个特点
- 本地缓存。安装过的包下次不会进行远程安装
- 并行下载。一次下载多个包,而 npm 是串行下载
- 精准的版本控制。保证每次安装跟上次都是一样的
安装 npm install --global yarn
相关命令
yarn --version
yarn init
//生成package.jsonyarn global add package
(全局安装) 全局安装路径:C:\Users\你的用户名\AppData\Local\Yarn\bin
yarn global remove less
(全局删除)yarn add package
(局部安装)yarn add package --dev
(相当于npm中的--save-dev)yarn remove package
yarn list
//列出已经安装的包名 用的很少yarn info packageName
//获取包的有关信息 几乎不用yarn
//安装package.json中的所有依赖
yarn 修改仓库地址 yarn config set registry https://registry.npm.taobao.org
Cyarn
跟 npm 与 cnpm 的关系一样,可以为 yarn 设置国内的淘宝镜像,提升安装的速度。配置后,只需将yarn改为cyarn使用即可。
npm install cyarn -g --registry "https://registry.npm.taobao.org"
yarn.lock
与 package-lock.json
锁文件,用来锁住版本
package.json
不是必须的,但是做项目的时候, 一定要有它。
关于版本号
版本格式:主版本号.次版本号.修订号
"^3.0.0"
:锁定主版本,以后安装包的时候,保证包是3.x.x版本,x默认取最新的。"~3.2.x"
:锁定小版本,以后安装包的时候,保证包是3.1.x版本,x默认取最新的。"3.1.1"
:锁定完整版本,以后安装包的时候,保证包必须是3.1.1版本。
安装指定版本的工具包 yarn add jquery@1.11.2