如何解决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 举报,一经查实,本站将立刻删除。