Windows 上的 node-gyp 5:找不到 npm\node_modules\node-gyp\bin\node-gyp.js
node-gyp 5 on Windows: Cannot find npm\node_modules\node-gyp\bin\node-gyp.js
运行 npm 6.11.3,node-gyp 5.0.3,VS2019 on Windows 10 v1903,出现此错误:
Cannot find module %AppData%\npm\node_modules\node-gyp\bin\node-gyp.js
(其中 %AppData%
扩展为实际的用户特定路径)。
仅当通过 npm 调用构建时才会发生错误,即:
npm run build
package.json
文件 scripts
部分:
"scripts": {
...
"build": "node-gyp build",
}
如果在 npm 上下文之外手动调用 node-gyp build
,则错误消失。
如何消除错误并仍然使用 npm
脚本进行构建?
想通了。
在 Windows 10 构建系统上升级到 node-gyp 5 后,我开始收到臭名昭著的 Error: Cannot find module ... npm\node_modules\node-gyp\bin\node-gyp.js
,这是由于 node_modules\npm-lifecycle\node-gyp-bin
被推到我的 PATH
由 npm 提供,与描述的完全一样 here。
None 我发现并尝试过的现有补救措施可以为我解决这个问题,包括安装最新的 windows-build-tools
。这正是我按以下顺序尝试的:
- 手动清理系统
PATH
和用户 PATH
环境变量中的混乱和重复项
- 重启
choco unistall nodejs
rd /s %AppData%\npm\
rd /s %AppData%\npm\
choco install nodejs
npm install -g npm@latest
npm install -g node-gyp@latest
npm install -g typescript@latest
我仍然收到 missing node-gyp.js
错误。有用的是 正确设置 npm config set node_gyp
指向正确的 node-gyp.js
,如 suggested here。然而不知何故,该线程中的脚本对我来说无法正常工作(以及我尝试过的其他一些 PowerShell/Batch 脚本)。
最终,我想出了下面的 PowerShell 6 单行程序,它对我有用:
pwsh -Command npm config set node_gyp "`u{22}$(Join-Path $(npm root -g) -ChildPath 'node-gyp\bin\node-gyp.js')`u{22}"
希望这对其他人和未来的我有所帮助。我仍然建议您仔细阅读上面的项目符号列表以进行彻底的故障排除。
运行 npm 6.11.3,node-gyp 5.0.3,VS2019 on Windows 10 v1903,出现此错误:
Cannot find module %AppData%\npm\node_modules\node-gyp\bin\node-gyp.js
(其中 %AppData%
扩展为实际的用户特定路径)。
仅当通过 npm 调用构建时才会发生错误,即:
npm run build
package.json
文件 scripts
部分:
"scripts": {
...
"build": "node-gyp build",
}
如果在 npm 上下文之外手动调用 node-gyp build
,则错误消失。
如何消除错误并仍然使用 npm
脚本进行构建?
想通了。
在 Windows 10 构建系统上升级到 node-gyp 5 后,我开始收到臭名昭著的 Error: Cannot find module ... npm\node_modules\node-gyp\bin\node-gyp.js
,这是由于 node_modules\npm-lifecycle\node-gyp-bin
被推到我的 PATH
由 npm 提供,与描述的完全一样 here。
None 我发现并尝试过的现有补救措施可以为我解决这个问题,包括安装最新的 windows-build-tools
。这正是我按以下顺序尝试的:
- 手动清理系统
PATH
和用户PATH
环境变量中的混乱和重复项 - 重启
choco unistall nodejs
rd /s %AppData%\npm\
rd /s %AppData%\npm\
choco install nodejs
npm install -g npm@latest
npm install -g node-gyp@latest
npm install -g typescript@latest
我仍然收到 missing node-gyp.js
错误。有用的是 正确设置 npm config set node_gyp
指向正确的 node-gyp.js
,如 suggested here。然而不知何故,该线程中的脚本对我来说无法正常工作(以及我尝试过的其他一些 PowerShell/Batch 脚本)。
最终,我想出了下面的 PowerShell 6 单行程序,它对我有用:
pwsh -Command npm config set node_gyp "`u{22}$(Join-Path $(npm root -g) -ChildPath 'node-gyp\bin\node-gyp.js')`u{22}"
希望这对其他人和未来的我有所帮助。我仍然建议您仔细阅读上面的项目符号列表以进行彻底的故障排除。