【发布时间】: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 的?
【问题讨论】:
-
Per github.com/sass/node-sass#node-version-support-policy 72 表示节点 12,v4.5.3 不支持(或至少不提供预编译的二进制文件)。如果您想继续使用该版本的
node-sass,您需要使用 Node 8(根据 nodejs.org/en/about/releases,它不支持 LTS)或自己构建。 -
@jonrsharpe 谢谢,如果你发布为答案,我会标记。
-
某种程度上,他们确实声明包版本不支持他们的节点版本。但我认为文件名的“-72”部分是从您的本地节点版本生成的解释是一个有用的故障排除信息,它解释了看似无意义的 URL。
标签: npm npm-install node-sass