【问题标题】:NPM restore attempting to retrieve non-existent node-sassNPM 恢复尝试检索不存在的 node-sass
【发布时间】:2021-08-19 21:23:33
【问题描述】:

我试图了解 NPM 是如何提出这个特定的不存在的 URL 来检索 node-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 的?

【问题讨论】:

标签: npm npm-install node-sass


【解决方案1】:

-72 之类的后缀与构建该二进制文件的 节点版本 相关,例如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指的是ABI(应用程序二进制接口) Node.js 的版本号,用于确定 Node.js 的哪些版本 编译后的 C++ 附加二进制文件无需加载即可 重新编译。它曾经在早期版本中存储为十六进制值, 但现在表示为整数。

【讨论】:

    猜你喜欢
    • 2018-09-10
    • 2018-10-05
    • 2019-04-03
    • 2020-06-09
    • 2019-01-17
    • 1970-01-01
    • 2019-01-12
    • 2018-08-23
    • 1970-01-01
    相关资源
    最近更新 更多