NPM 恢复尝试检索不存在的节点-sass

NPM restore attempting to retrieve non-existent node-sass

我正在尝试了解 NPM 如何提出这个不存在的特定 URL 来检索节点-sass。

我的 package.json 包括:

  "dependencies": {
    "node-sass": "<=4.5.3",
    "request": "<=2.81.0",
    "shrinkwrap": "^0.4.0"
  },

从 VS2019 我在 package.json 上执行恢复。它首先尝试安装的东西之一是 node-sass,但它会生成一个不存在的发布资产请求:

> node-sass@4.5.3 install C:\Dev\LegacyProject\Dev\LegacyProject.Web\node_modules\node-sass
> node scripts/install.js
Downloading binary from https://github.com/sass/node-sass/releases/download/v4.5.3/win32-x64-72_binding.node
Cannot download "https://github.com/sass/node-sass/releases/download/v4.5.3/win32-x64-72_binding.node": 
HTTP error 404 Not Found

此版本存在,但在该版本的资产中没有此版本带有“-72”的资产:win32-x64-72 _binding.node: https://github.com/sass/node-sass/releases/tag/v4.5.3

这个“-72”在资产命名约定中说明了什么?
为什么它会尝试安装一个不存在的发布资产?换句话说,它是如何得出这个特定的 URL?

-72 这样的后缀与 Node version 相关,为该二进制文件构建,例如https://github.com/sass/node-sass#node-version-support-policy:

NodeJS Supported node-sass version Node Module
Node 16 6.0+ 93
Node 15 5.0+ 88
Node 14 4.14+ 83
Node 13 4.13+, <5.0 79
Node 12 4.12+ 72
Node 11 4.10+, <5.0 67
Node 10 4.9+, <6.0 64
Node 8 4.5.3+, <5.0 57
Node <8 <5.0 <57

如果它正在尝试下载 -72,您可能正在使用 Node 12,它没有 node-sass@4.5.3.

的预编译二进制文件

您可以在例如 上查看有关此节点模块版本的更多信息https://nodejs.org/en/download/releases/,表示:

NODE_MODULE_VERSION refers to the ABI (application binary interface) version number of Node.js, used to determine which versions of Node.js compiled C++ add-on binaries can be loaded in to without needing to be re-compiled. It used to be stored as hex value in earlier versions, but is now represented as an integer.