因为专注,所以专业
2005 - 2020

NPM 机制

时间:2020-03-10 02:12:40    作者:八叔模板堂
  1. NPM 主要安装方式
  2. NPM 包信息查询
  3. NPM 安装机制(主要)

安装&查询命令

    • 在 node_modules 中没有指定模块时安装,(不检查~/.npm目录)
    • 一个模块不管是否安装过,npm都要 强制重新安装
    • 如果远程版本较新、或者本地版本不存在时安装
  • NPM通过registry的查询服务,从而知道每个模块的最新版本。
  • 可以通过 npm view packageName [version] 查询对映模块的信息

NPM 安装机制

如果查询node_modules目录之中已经存在指定模块,那么不再重新安装
    • 在下载一个模块之前,首先要确定其版本,这是因为 package.json 中往往是 semantic version(semver,语义化版本)
    • 此时如果版本描述文件(npm-shrinkwrap.json 或 package-lock.json)中有该模块信息直接拿即可
    • 如果没有则从仓库获取(向registry查询)。如 packaeg.json 中某个包的版本是 ^1.1.0,npm 就会去仓库中获取符合 1.x.x 形式的最新版本。
    • 上一步会获取到模块的压缩包地址(resolved 字段),npm 会用此地址检查本地缓存,缓存中有就直接拿,如果没有则从仓库下载。
    • 如果有依赖则回到第1步,如果没有则停止。
  • node-modules 下 foo 模块依赖 lodash@^1.0.0,bar 模块依赖 lodash@^1.1.0,则 ^1.1.0 为兼容版本。
  • 而当 foo 依赖 lodash@^2.0.0,bar 依赖 lodash@^1.1.0,则依据 semver 的规则,二者不存在兼容版本。会将一个版本放在 node_modules 中,另一个仍保留在依赖树里。
赞(0
免费拨打  111-1111-1111
免费拨打  111-1111-1111免费拨打 111-1111-1111
微信二维码
手机二维码
返回顶部
返回顶部返回顶部