package包
电脑上的文件夹,包含了某些特定的文件,符合了某些特定的结构,就是一个包。
包实际上就是一个压缩文件,解压以后还原为目录。符合CommonJS规范的目录,一个标准的包,应该包含如下文件:
- 1) package.json 描述文件(包的 “说明书”,必须要有)
- 2) bin 可执行二进制文件
- 3) lib 经过编译后的js代码
- 4) doc 文档(说明文档、bug修复文档、版本变更记录文档)
- 5) test 单元测试(一个测试报告)
如何让一个普通文件夹变成一个包?
让这个文件夹拥有一个:package.json
文件即可,且package.json
里面的内容要合法。
执行命令:npm init
包名的要求:不能有中文、不能有大写字母、不能与npm仓库上其他包同名。
NPM
全称:Node Package Manager
, 是Node的包管理器,专门用于管理包
NPM能干什么
通过NPM可以对Node的包进行搜索、下载、安装、删除、上传
NPM的常用指令:
npm -v
查看npm的版本
npm init
初始化项目的package.json文件
搜索
方法一:
npm search [keyword]
方法二:
通过网址搜索:www.npmjs.com
安装
安装之前必须保证文件夹内有package.json,且里面的内容格式合法
- 普通安装
npm install [packageName] --save 或 npm i [packageName] -S 或 npm i [packageName]
备注:
(1)安装完的第三方包,放在node_modules
这里
(2)会自动产生一个package-lock.json
(npm版本在5.x.x以后才有该文件),里面缓存的是每个下载过的包的地址,目的是为了下次安装时速度快一些。
(3)当安装完一个包,该包的名字会自动写入到package.json中的【dependencies(生产依赖)】里。
- 安装开发依赖包
npm install [packageName] --save-dev 或 npm i [packageName] -D
安装包并将该包写入到【devDependencies(开发依赖中)】
什么是生产依赖与开发依赖?
1.只在开发(写代码时)时需要依赖的库,就是开发依赖 —– 例如:语法检查库、压缩代码、扩展css前缀的库。
2.生产环境中必不可少的库,就是生产依赖 —— 例如:jquery。
3.某些库既属于开发依赖,又属于生产依赖 ——-例如:jquery。
- 全局安装包
一般来说,带有指令集的包要进行全局安装,例如:browserify、babel等
npm i [packageName] -g
- 查看全局安装的位置
npm root -g
- 安装包的指定版本
npm i [packageName]@[version]
- 安装package.json中所有声明的包
npm i
移除
- 移除指定包,并且删除该包在package.json中的声明
npm remove [packageName]
其他命令
- 检测项目依赖中的一些漏洞,并且尝试着修复
npm aduit fix
- 查看npm仓库中指定包的所有版本信息
npm view [packageName] versions
- 查看npm仓库中指定包的最新版本
npm view [packageName] version
- 查看已安装的指定包的版本
npm ls [packageName] 或 npm list [packageName]
版本号
- “^3.x.x” :锁定大版本,以后安装包的时候,保证包是3.x.x版本,x默认取最新的。
- “~3.1.x” :锁定小版本,以后安装包的时候,保证包是3.1.x版本,x默认取最新的。
- “3.1.1” :锁定完整版本,以后安装包的时候,保证包必须是3.1.1版本。
例:package.json
文件里面规定的jquery的版本号为:^2.1.1
,那么执行npm -i
,将默认安装jquery的版本为2.2.4
更改NPM远程仓库地址
- 查看默认仓库地址
npm config get registry
替换npm仓库地址为cnpm仓库地址
npm config set registry https://registry.npm.taobao.org
yarn
安装
npm install -g yarn
常用命令
- 添加依赖包
yarn add xxx --dev
- 全局安装
yarn global add xxx
- 查看yarn全局安装位置
yarn global dir
- 更改源
yarn config set registry https://registry.npm.taobao.org
- 清除缓存
yarn cache clean
备注:值得注意的是yarn的全局安装位置和npm的不一样,若想正常使用yarn全局安装的包,要把yarn global bin
返回的地址加到环境变量中。