哪些版本的 npm 附带哪些版本的 node?

Lor*_*ren 9 node.js npm

哪些版本的 npm 附带哪些版本的 node?我找不到这样的清单。

小智 37

这是清单:

节点 >> 10.6.0 npm >> 6.1.0

节点 >> 9.0.0 npm >> 5.5.1

https://nodejs.org/en/download/releases/


Rob*_*obC 11

https://nodejs.org/dist/ 上index.json,它指示 nodejs 的每个版本以及与其捆绑的 npm 版本。


索引文件

index.json读取数组中的一个对象的摘录:

[
  {
    "version": "v10.6.0",       //<--- nodejs version
    "date": "2018-07-04",
    "files": [
      ...
    ],
    "npm": "6.1.0",             //<--- npm version
    "v8": "6.7.288.46",
    "uv": "",
    "zlib": "1.2.11",
    "openssl": "1.1.0h",
    "modules": "64",
    "lts": false
  },
  ...
]
Run Code Online (Sandbox Code Playgroud)

因此数组中的每个对象都有一个version (即 nodejs 版本)npm (即 npm 版本)键/值对。


以编程方式获取版本

考虑使用以下 node.js 脚本从https://nodejs.org/dist/index.json端点请求数据。

获取-versions.js

const { get } = require('https');

const ENDPOINT = 'https://nodejs.org/dist/index.json';


function requestVersionInfo(url) {
  return new Promise((resolve, reject) => {
    get(url, response => {
      let data = '';
      response.on('data', chunk => data += chunk);
      response.on('end', () => resolve(data));
    }).on('error', error => reject(new Error(error)));
  });
}


function extractVersionInfo(json) {
  return JSON.parse(json).map(({ version, npm = null }) => {
    return {
      nodejs: version.replace(/^v/, ''),
      npm
    };
  });
}


(async function logVersionInfo() {
  try {
    const json = await requestVersionInfo(ENDPOINT);
    const versionInfo = extractVersionInfo(json);
    console.log(JSON.stringify(versionInfo, null, 2));

  } catch ({ message }) {
    console.error(message);
  }
})();

Run Code Online (Sandbox Code Playgroud)

运行以下命令:

node ./path/to/get-versions.js
Run Code Online (Sandbox Code Playgroud)

将在您的控制台上打印如下内容:

[
  {
    "nodejs": "14.2.0",
    "npm": "6.14.4"
  },
  {
    "nodejs": "14.1.0",
    "npm": "6.14.4"
  },
  {
    "nodejs": "14.0.0",
    "npm": "6.14.4"
  },
  {
    "nodejs": "13.14.0",
    "npm": "6.14.4"
  },
  ...
]
Run Code Online (Sandbox Code Playgroud)

如您所见,它列出了 nodejs 的每个版本及其各自的 npm 版本。