关于获取最新版本号的问题

来源:4-9 npm全局更新功能开发

菜卷_

2022-07-16 09:55:02

相关描述:

视频中sam老师用了比较复杂的方法去获取最新版本号,但是npm接口返回的信息中有一个

"dist-tags"属性可以直接拿到最新版本,直接用这个属性去获取最新版本有啥坑吗?



相关代码:

utils/get-npm-info/lib/index.js

"use strict";

const urlJoin = require("url-join");
const axios = require("axios");

function getNpmInfo(npmName, registry) {
      ...
}

function getDefaultRegistry(isOriginal = false) {
      ...
}

module.exports = {
  getNpmInfo,
};

core/cli/lib/index.js

async function checkGlobalUpdate() {
  const currenVersion = pkg.version;
  const npmName = pkg.name;

  const { getNpmInfo } = require("@fuxin-imooc-cli-dev/get-npm-info");

  const npmInfo = await getNpmInfo(npmName);
  const lastVersion = npmInfo["dist-tags"].latest;

  if (lastVersion && semver.gt(lastVersion, currenVersion)) {
    log.warn(
      colors.yellow(
        `请手动更新${npmName}, 当前版本${currenVersion},最新版本:${lastVersion}`
      )
    );
  }
}


写回答

1回答

扬_灵

2022-07-17

同学你好,可以直接通过dist-tags获取最新版本的,课程中没有使用到这个属性是因为课程在录制时接口中还没有这个字段的。

0

2024版 Web前端架构师

2024版 ,前端高手课!全局架构思维/系统培养大厂P7技术专家/中小厂前端Leader

1126 学习 · 2255 问题

查看课程