获取指定脚本版本号的 JavaScript 函数
获取指定脚本版本号的 JavaScript 函数
这段代码实现了一个函数 getVersion,用于获取指定脚本的版本号。
function getVersion(scriptUrl, timeout = 3 * 1000) {
return new Promise((resolve) => {
const options = { url: `https://fastly.jsdelivr.net/gh/${scriptUrl}` };
$.get(options, (err, resp, data) => {
try {
const regex = /scriptVersionNow\s*=\s*(['`"])([\d.]+)\1/; // 使用单引号包裹正则表达式
const match = data.match(regex);
const scriptVersionLatest = match ? match[2] : "";
console.log(`\n====== 当前版本:${scriptVersionNow} 📌 最新版本:${scriptVersionLatest} ======`);
} catch (e) {
$.logErr(e, resp);
}
resolve();
}, timeout);
});
}
该函数接受两个参数:
scriptUrl:脚本的 URL 地址timeout:超时时间,默认为 3 秒
函数返回一个 Promise 对象,通过调用该对象的 .then() 方法可以获取到脚本的版本号。
函数内部通过发送 GET 请求获取脚本内容,使用 $.get() 方法实现。请求的 URL 地址是 https://fastly.jsdelivr.net/gh/${scriptUrl},通过拼接 scriptUrl 参数构成完整的 URL。
请求成功后,处理返回的数据。首先使用正则表达式 /scriptVersionNow\s*=\s*(['"])([\d.]+)\1/匹配出脚本版本号。正则表达式的意义是匹配scriptVersionNow后跟着一个引号(单引号、双引号或反引号),然后匹配一个或多个数字或小数点,最后再匹配与第一个引号相同的引号。匹配结果存储在match` 变量中。
如果成功匹配到版本号,则将版本号赋值给 scriptVersionLatest 变量。否则,将空字符串赋值给 scriptVersionLatest。
最后,使用 console.log() 方法输出当前版本号和最新版本号。
如果发生异常,捕获错误并使用 $.logErr() 方法记录错误信息和响应。
最后,调用 resolve() 方法结束 Promise,并传递空参数表示操作成功。
原文地址: https://www.cveoy.top/t/topic/pk7l 著作权归作者所有。请勿转载和采集!