npm 安装不存在的节点-sass
npm installing nonexistent node-sass
我们有一个项目正在从 node-sass 升级到 sass。我们从 package.json.
中移除了对 node-sass 的依赖
npm install
在节点 v15 (npm v7.7.6) 下工作,但在节点 v16 (npm v8.7.0) 下失败。
失败
npm info run node-sass@4.14.1 postinstall
正在尝试编译 libsass。
npm ERR! npm ERR! command sh -c node scripts/build.js
npm ERR! npm ERR! Building: /Users/.../.nvm/versions/node/v16.14.2/bin/node /Users/.../.npm/_cacache/tmp/git-clonewTBZbR/node_modules/node-gyp/bin/node-gyp.js rebuild --verbose --libsass_ext= --libsass_cflags= --libsass_ldflags= --libsass_library=
npm ERR! npm ERR! c++ '-DNODE_GYP_MODULE_NAME=libsass'...
我知道 node-sass 和 libsass 非常依赖节点版本。我想不通的是这种依赖性是从哪里来的。
如果我切换到节点 15 并安装(创建 node_modules),我发现:
npm ls node-sass
显示(空)
find . -type d -name 'node-sass'
找不到这样的目录(与 libsass 相同)
使用 ack --noignore-dir=node_modules node-sass
递归地搜索“节点-sass”的 node_modules 仅显示 devDependencies 和 peerDependencies(例如 sass-loader 的可选)。使用 --legacy-peer-deps
安装没有帮助。
我试过使用 --loglevel silly
安装,但没有看到任何更多相关信息。
如何确定试图安装此依赖项的是什么?
我发现了问题(这是一个使用旧版本 node-sass 并使用 git+ssh 导入的私人公司包)。
技术:
- 在新文件夹中,运行
npm init -y
- 从有问题的项目中一次复制 dependencies/devDependencies 一个块(你也可以
npm i
这些单独的,但你必须 @ 相同的版本,这可能需要更长的时间)
- 添加每个依赖块后,运行
npm i
(或 npm i --legacy-peer-deps
如有必要)
- 可选
git init
文件夹(带 .git 忽略 node_modules)并在每次更改后提交,以便更容易还原
- 从第 2 步开始重复,直到出现错误
我对哪些包可能是罪魁祸首做出了一些有根据的猜测,因此我可以一次测试多个依赖项。
最后我把它缩小到一个包。添加它导致错误。
另一种选择是一个一个地删除包(假设您的项目受源代码控制)并尝试在每个包之后安装。
我们有一个项目正在从 node-sass 升级到 sass。我们从 package.json.
中移除了对 node-sass 的依赖npm install
在节点 v15 (npm v7.7.6) 下工作,但在节点 v16 (npm v8.7.0) 下失败。
失败
npm info run node-sass@4.14.1 postinstall
正在尝试编译 libsass。
npm ERR! npm ERR! command sh -c node scripts/build.js npm ERR! npm ERR! Building: /Users/.../.nvm/versions/node/v16.14.2/bin/node /Users/.../.npm/_cacache/tmp/git-clonewTBZbR/node_modules/node-gyp/bin/node-gyp.js rebuild --verbose --libsass_ext= --libsass_cflags= --libsass_ldflags= --libsass_library= npm ERR! npm ERR! c++ '-DNODE_GYP_MODULE_NAME=libsass'...
我知道 node-sass 和 libsass 非常依赖节点版本。我想不通的是这种依赖性是从哪里来的。
如果我切换到节点 15 并安装(创建 node_modules),我发现:
npm ls node-sass
显示(空)
find . -type d -name 'node-sass'
找不到这样的目录(与 libsass 相同)
使用 ack --noignore-dir=node_modules node-sass
递归地搜索“节点-sass”的 node_modules 仅显示 devDependencies 和 peerDependencies(例如 sass-loader 的可选)。使用 --legacy-peer-deps
安装没有帮助。
我试过使用 --loglevel silly
安装,但没有看到任何更多相关信息。
如何确定试图安装此依赖项的是什么?
我发现了问题(这是一个使用旧版本 node-sass 并使用 git+ssh 导入的私人公司包)。
技术:
- 在新文件夹中,运行
npm init -y
- 从有问题的项目中一次复制 dependencies/devDependencies 一个块(你也可以
npm i
这些单独的,但你必须 @ 相同的版本,这可能需要更长的时间) - 添加每个依赖块后,运行
npm i
(或npm i --legacy-peer-deps
如有必要) - 可选
git init
文件夹(带 .git 忽略 node_modules)并在每次更改后提交,以便更容易还原 - 从第 2 步开始重复,直到出现错误
我对哪些包可能是罪魁祸首做出了一些有根据的猜测,因此我可以一次测试多个依赖项。
最后我把它缩小到一个包。添加它导致错误。
另一种选择是一个一个地删除包(假设您的项目受源代码控制)并尝试在每个包之后安装。