乐趣区

关于前端:npm知识点

npm 知识点

以下文档基于 npm@6.14.1,其余版本可能体现不同

参考

  • 你想晓得对于 package-lock.json 的所有
  • nrm
  • npx 应用教程

nrm 包源管理工具

  • 装置:npm install -g nrm
  • 显示可用源:nrm ls
  • 测速:nrm test
  • 切换源:nrm use taobao

package.json

依赖包版本号~ 和 ^ 和 * 的区别

  • ~ 会匹配最近的小版本依赖包,比方~1.2.3 会匹配所有 1.2.x 版本,然而不包含 1.3.0
  • ^ 会匹配最新的大版本依赖包,比方 ^1.2.3 会匹配所有 1.x.x 的包,包含 1.3.0,然而不包含 2.0.0
  • \* 这意味着装置最新版本的依赖包

npm 常用命令

  • npm i –save 同 npm i -S
  • npm i –save-dev 同 npm i -D
  • npm i -E

    • 准确装置指定模块版本
    • 生成的 package.json 不蕴含 ^ 符号

      "vuex": "3.1.2"
  • npm i –save-exact 同 npm i -E
  • npm i npm -g:降级 npm
  • npm i [packageName]@:装置某个包的最新版本,如:npm i jquery@\

知识点

  • 应用 npm install xxx 命令装置模块时,不再须要 –save 选项,会主动将模块依赖信息保留到 package.json 文件;
  • cnpm 不会生成和更新 package-lock.json,故不倡议应用 cnpm,应用 nrm 切换源解决速度问题

npm ci

  • 它是从 package-lock.json 文件装置依赖,具备快以及牢靠长处
  • 如果 package-lock.json 外面依赖和 package.json 不统一,npm ci 会报错并且退出
  • npm ci 只能一次性装置整个工程的依赖,不能应用这个命令独自增加依赖
  • 如果 node_modules 文件夹存在,它会在装置依赖之前删除这个文件夹
  • 它不会扭转 package.json 或者任何 package-lock

npm i

  • package.json 和 package-lock.json 不统一时 (如手动批改过,包含删除),以 package.json 为准,npm i 执行实现后 package-lock.json 会更新
  • npm i jquery@1.12.2 指定装置某个版本,package-lock.json 会更新

若心愿不同电脑上装置的包统一,倡议如下操作

  • npm 版本升级到 6.14.1
  • 不要应用 cnpm,装 nrm,切换到 taobao 源
  • 运行 npm ci
  • 若 package.json 中新增了依赖,倡议应用 npm i @X 装置指定版本,不要应用 npm i
  • 若运行 npm i,有版本不同的危险,若 package-lock.json 有变动,则代表方才装置的版本与之前不同,此时须要测试整个我的项目是否受到影响

npx

npx 应用教程

其余

  • 命令行删除 node_modules 速度更快,Windows 平台应用:rmdir /s/q node_modules,*nix 平台应用:sudo rm -rf node_modules
退出移动版