包与包管理器
Node.js 遵循 CommonJS 规范。
一个标准包
- package.json:描述文件(包的 “说明书”,必须要有!!!)
- bin:可执行二进制文件
- lib:经过编译后的 js 代码
- doc:文档(说明文档、bug 修复文档、版本变更记录文档)
- test:一些测试报告
npm 常用命令
搜索
npm search xxxxx
- 通过网址搜索:www.npmjs.com
安装
安装之前必须保证文件夹内有 package.json,且里面的内容格式合法
npm install xxx --save
或npm i xxx -S
或npm i xxx
- 局部安装完的第三方包,放在当前目录中
node_modules
这个文件夹里 - 安装完毕会自动产生一个 package-lock.json (npm 版本在5以后才有),里面缓存的是每个下载过的包的地址,目的是下次安装时速度快一些
- 当安装完一个包,该包的名字会自动写入到 package.json 中的【dependencies (生产依赖)】里。npm5 及之前版本要加上 --save 后缀才可以。
- 局部安装完的第三方包,放在当前目录中
npm install xxx --save-dev
或npm i xxx -D
- 安装包并将该包写入到【devDependencies (开发依赖中)】
什么是生产依赖与开发依赖?
- 只在开发时 (写代码时) 时才用到的库,就是开发依赖。例如:语法检查、压缩代码、扩展 css 前缀的包
- 在生产环境中 (项目上线) 不可缺少的,就是生产依赖。例如:vue、bootStrap 等等
- 注意:某些包即属于开发依赖,又属于生产依赖。例如:jquery
npm i xxxx -g
全局安装 xxxx 包- 一般来说,带有指令集的包要进行全局安装,例如:browserify、babel 等
- 全局安装的包,其指令到处可用,如果该包不带有指令,就无需全局安装
- 查看全局安装的位置:
npm root -g
npm i xxx@yyy
安装 xxx 包的 yyy 版本npm i
:安装 package.json 中声明的所有包
移除
npm remove xxx
在 node_module 中删除 xxx 包,同时会删除该包在 package.json 中的声明
其他命令
npm aduit fix
检测项目依赖中的一些问题,并且尝试着修复。npm view xxx versions
查看远程 npm 仓库中 xxx 包的所有版本信息npm view xxx version
查看 npm 仓库中 xxx 包的最新版本npm ls xxx
查看我们所安装的 xxx 包的版本
关于版本号的说明
"^3.x.x"
:锁定大版本,以后安装包的时候,保证包是 3.x.x 版本,x 默认取最新的"~3.1.x"
:锁定小版本,以后安装包的时候,保证包是 3.1.x 版本,x 默认取最新的"3.1.1"
:锁定完整版本,以后安装包的时候,保证包必须是 3.1.1 版本