包与包管理器
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 版本