使用npm安装appmetrics依赖失败,node-gyp编译报错如何解决?
错误原因
appmetrics@4.0.1版本的原生扩展代码使用的V8接口已经在Node.js 14版本中被修改移除,这是版本不兼容导致的编译错误,和编译器版本、node-gyp安装状态无关,所以你之前指定gcc版本的操作无法解决问题。
可行解决方案
- 方案1:降级Node.js到12.x版本
这是兼容性最好的方案,appmetrics 4.0.1官方适配的最高Node.js版本为12.x,你可以通过nvm快速切换版本:nvm install 12 nvm use 12 cd access-watch rm -rf node_modules package-lock.json npm i - 方案2:强制使用兼容Node 14的appmetrics版本
如果你必须使用Node.js 14,可以通过依赖覆盖的方式替换appmetrics版本:- 如果你使用npm 8.3及以上版本,在项目的package.json中新增overrides字段:
{ "overrides": { "appmetrics": "^5.0.0" } }- 如果你使用的是更低版本的npm,可以通过resolution字段强制指定版本:
先在package.json中新增:
再执行安装命令:{ "resolutions": { "appmetrics": "^5.0.0" } }npx npm-force-resolutions npm i - 方案3:跳过appmetrics的安装脚本
如果你不需要使用access-watch的性能监控功能,可以直接跳过appmetrics的编译环节:npm i appmetrics --ignore-scripts npm i
内容的提问来源于stack exchange,提问作者Vladimir
相关产品推荐
相关产品推荐

