gpt4 book ai didi

node.js - 我的库支持哪个版本的 Node?

转载 作者:太空宇宙 更新时间:2023-11-04 02:08:11 27 4
gpt4 key购买 nike

我希望有一个库或工具可以运行我的代码并告诉我运行它需要什么版本的 Node。也许更好的是它提醒我可以更改代码区域以支持旧版本。

野外有这样的东西吗?

最佳答案

我不确定这是否正是您正在寻找的,但是 there is an existing package.json property called "engines"包开发人员可以在其中指定他们需要的版本。使用 globsemver 包来查看所有具有“引擎”要求的 package.json 文件并将其编译为以下对象并不太困难:

{ 
[version1]: [{ packageName, currentlySupported }, { ... }],
[version2]: [...],
...
}

下面是一个基本的脚本示例,它将为您创建该对象:

npm install glob semver

检查版本.js:

const glob = require('glob');
const path = require('path');
const semver = require('semver');
const currentVersion = process.version;
const versions = {};

glob('node_modules/*/package.json', (err, files) => {
files.forEach((file) => {
const pkg = require(path.resolve(__dirname, file));
// only check add package if it specifies "engines"
if (pkg.engines && pkg.engines.node) {
const reqdVersion = pkg.engines.node.replace(/\s+/g, '');
// assume you are using a supported version
let currentlySupported = true;
// check if current node version satisfies package requirements
if (!semver.satisfies(currentVersion, reqdVersion)) {
currentlySupported = false;
}

if (!Array.isArray(versions[reqdVersion])) {
versions[reqdVersion] = [];
}

versions[reqdVersion].push({
package: file.replace(/node_modules\/(.*)\/package.json/, '$1'),
currentlySupported,
});
}
});
console.log(versions);
});

运行它:

node checkversions.js

关于node.js - 我的库支持哪个版本的 Node?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43400033/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com