美文网首页
你不一定知道的npm那些知识

你不一定知道的npm那些知识

作者: 该帐号已被查封_才怪 | 来源:发表于2018-11-07 15:53 被阅读83次

一、显示npm install 详细信息

1、显示info级别信息

npm config set loglevel info


image.png

2、显示verbose级别信息

npm config set loglevel verbose

image.png

3、显示其他级别信息

https://docs.npmjs.com/misc/config#loglevel

image.png

二、使用淘宝镜像

npm install -g cnpm --registry=https://registry.npm.taobao.org

npm config set registry https://registry.npmjs.org/

三、查看项目安装各个库的版本号

// 查看所有一级依赖的版本
npm ls --depth 0  或 npm ls --depth=0

// 查看所有一级依赖及二级依赖的版本
npm ls --depth 1 或 npm ls --depth=1
// 查看所有dependencies一级依赖的版本
npm list -depth 0 -prod true
// 查看所有devDependencies一级依赖的版本
npm list -depth 0 -dev true

四、库版本解释

image.png

库版本解释 截图自: 2018 年了,你还是只会 npm install 吗?

五、锁定库版本

1、通过prefix控制(信息来源:npm-shrinkwrap锁定依赖

当运行 npm update 时,

  • a、^1.5.1 【限制主版本号】允许安装版本号大于 1.5.1 但小于 2.0.0 版本的模块
    npm默认采用这种方式

  • b、~1.5.1 【限制次要版本】 允许安装版本号大于 1.5.1 但小于 1.6.0 版本的模块
    可通过 npm config set save-prefix="~"将默认的^修改为~

  • c、1.5.1 【精确控制】允许安装版本号大于 1.5.1
    可通过npm config set save-exact true 将默认的^取除掉

在此个人推荐采用~1.5.1的方式;

2、通过package-lock.json控制

npm 5.0+ 后 npm install时会自动创建package-lock.json文件;package-lock.json的出现,npm install规则发生了三次变化:(信息来源: npm install 生成的package-lock.json是什么文件?有什么用?

  • a、 npm 5.0.x版本
    不管package.json怎么变化,npm install 都会根据package-lock.json 文件下载;
  • b、 npm 5.1.0+版本
    npm install会无视package-lock.json, 根据package.json下载,也就是package.json的权限会高于package-lock.json;
  • c、 npm 5.4.2+版本
    npm install时 如果package.json与package-lock.json不一致,则根据package.json的语法规则进行下载;如果一致时,则都会根据package-lock.json下载;

3、通过shrinkwrap控制 (信息来源:npm-shrinkwrap锁定依赖

  • 步骤1、如果不能保证package.json文件定义的依赖与node_modules下已安装的依赖是匹配、无冗余的,建议执行 清理依赖并重新安装(rm -rf node_modules && npm install )或者精简依赖--移除无关的包(npm prune )

  • 步骤2、npm shrinkwrap 运行后,如果原来有package-lock.json文件的,将单纯的重命名为npm-shrinkwrap.json

  • 步骤3、npm install 后,记得运行 npm shrinkwrap 以便更新npm-shrinkwrap.json文件

也就是使用shrinkwrap控制库版本时需要执行三条命令;

package-lock.json与npm-shrinkwrap.json的作用类似,但是区别如下:

a、如果根目录下同时存在这两个文件,则以npm-shrinkwrap.json为准;
b、npm-shrinkwrap.json在npm v2、npm v3、npm v4 就已经支持了,但是package-lock.json 仅在npm v5+及以后才支持;
c、npm-shrinwkrap.json 可以被包含到发布包,而 package-lock.json 不行,保证用户可以自由管理依赖包;

4、弃用npm,采用yarn;

六、升级npm

npm install npm@latest -g

七、推荐资料

1、[译]npm入门指南
2、npm-shrinkwrap锁定依赖
3、在JavaScript项目中锁定npm依赖包版本

相关文章

网友评论

      本文标题:你不一定知道的npm那些知识

      本文链接:https://www.haomeiwen.com/subject/fnevxqtx.html