Ich bin mir nicht sicher, ob dies genau das ist, was Sie suchen, aber there is an existing package.json
property called "engines" wo Paketentwickler angeben können, welche Version (en) sie benötigen. Nicht zu schwer glob
und semver
Pakete zu benutzen und durch alle package.json Dateien mit einer „Motoren“ Anforderung zu suchen und kompilieren, dass in ein Objekt aus:
{
[version1]: [{ packageName, currentlySupported }, { ... }],
[version2]: [...],
...
}
ist hier ein rudimentäres Beispiel eines Skripts, das schaffen wird, dass Objekt für Sie:
npm install glob semver
checkversions.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);
});
Run it:
Ich glaube nicht, dass es in der Regel vorhanden ist, können Sie package.json verwenden, um die Knoten-Engine zu sperren und sich nicht darum kümmern, was auf verschiedenen Versionen unterstützt wird. imho wählen Sie aktuelle LTS-Versionen oder verwenden Sie Polyfills, wenn etwas fehlt. – Gntem
Zitat aus der Hilfe: *** Fragen, die uns auffordern, ein Buch, ein Tool, eine Softwarebibliothek, ein Lernprogramm oder eine andere Offsite-Ressource zu empfehlen oder zu finden, sind für Stack Overflow off-topic, da sie tendenziell eher eigensinnige Antworten und Spam anziehen. Beschreiben Sie stattdessen das Problem und was bis jetzt getan wurde, um es zu lösen. *** – jfriend00
Ich habe eine Bibliothek erstellt und möchte sie optimieren, um in einer größeren Anzahl von Umgebungen zu arbeiten. Ich suchte online nach einer Quelle und fand keine, also stellte ich die Frage. – kequc