Skip to content

包与包管理器

Node.js 遵循 CommonJS 规范。

一个标准包

  • package.json:描述文件(包的 “说明书”,必须要有!!!)
  • bin:可执行二进制文件
  • lib:经过编译后的 js 代码
  • doc:文档(说明文档、bug 修复文档、版本变更记录文档)
  • test:一些测试报告

npm 常用命令

搜索

  • npm search xxxxx
  • 通过网址搜索:www.npmjs.com

安装

安装之前必须保证文件夹内有 package.json,且里面的内容格式合法

  • npm install xxx --savenpm i xxx -Snpm i xxx
    • 局部安装完的第三方包,放在当前目录中 node_modules 这个文件夹里
    • 安装完毕会自动产生一个 package-lock.json (npm 版本在5以后才有),里面缓存的是每个下载过的包的地址,目的是下次安装时速度快一些
    • 当安装完一个包,该包的名字会自动写入到 package.json 中的【dependencies (生产依赖)】里。npm5 及之前版本要加上 --save 后缀才可以。
  • npm install xxx --save-devnpm 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 版本