微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

NPM 还原尝试检索不存在的节点 sass

如何解决NPM 还原尝试检索不存在的节点 sass

我试图了解 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”在资产命名约定中指定了什么?
为什么要尝试安装不存在的发布资产?换句话说,它是如何得出这个特定网址的?

解决方法

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

NodeJS 支持的 node-sass 版本 节点模块
节点 16 6.0+ 93
节点 15 5.0+ 88
节点 14 4.14+ 83
节点 13 4.13+, 79
节点 12 4.12+ 72
节点 11 4.10+, 67
节点 10 4.9+, 64
节点 8 4.5.3+, 57
节点

如果它正在尝试下载 -72,那么您可能使用的是 Node 12,它没有为 node-sass@4.5.3 提供预编译的二进制文件。

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

NODE_MODULE_VERSION 指的是 ABI(应用程序二进制接口) Node.js 的版本号,用于确定 Node.js 的哪个版本 编译的 C++ 附加二进制文件可以加载到其中而无需 重新编译。它曾经在早期版本中存储为十六进制值, 但现在表示为整数。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。