React项目安装sqlite3遇npm error code 7错误求助
sqlite3依赖安装失败(错误码7)
克隆React项目仓库后执行npm install,其余依赖均安装成功,但sqlite3失败。手动执行npm install sqlite3时抛出错误:npm ERR! code 7,错误路径为/home/yash/Freelance/degenbulls/node_modules/sqlite3,提示命令sh -c node-pre-gyp install --fallback-to-build执行失败。该问题在多个项目中出现,尝试多种方法均无效,完整错误日志如下:
npm WARN deprecated har-validator@5.1.5: 该库已不再受支持 npm WARN deprecated crypto@1.0.1: 此包已不再受支持,现在它是Node内置模块。如果你依赖crypto,请切换到Node内置的版本。 npm WARN deprecated @walletconnect/types@1.8.0: WalletConnect的v1 SDK已废弃,请升级到v2 SDK。 npm WARN deprecated stable@0.1.8: 现代JS已保证Array#sort()是稳定排序,因此该库已废弃。可查看MDN的兼容性表格了解详情。 npm WARN deprecated @npmcli/move-file@1.1.2: 此功能已迁移至@npmcli/fs npm WARN deprecated @babel/plugin-proposal-numeric-separator@7.18.6: 该提案已并入ECMAScript标准,因此此插件不再维护,请使用@babel/plugin-transform-numeric-separator替代。 npm WARN deprecated @babel/plugin-proposal-nullish-coalescing-operator@7.18.6: 该提案已并入ECMAScript标准,因此此插件不再维护,请使用@babel/plugin-transform-nullish-coalescing-operator替代。 npm WARN deprecated @babel/plugin-proposal-class-properties@7.18.6: 该提案已并入ECMAScript标准,因此此插件不再维护,请使用@babel/plugin-transform-class-properties替代。 npm WARN deprecated @babel/plugin-proposal-private-methods@7.18.6: 该提案已并入ECMAScript标准,因此此插件不再维护,请使用@babel/plugin-transform-private-methods替代。 npm WARN deprecated rollup-plugin-terser@7.0.2: 此包已废弃且不再维护,请使用@rollup/plugin-terser替代。 npm WARN deprecated @walletconnect/mobile-registry@1.4.0: 已废弃,推荐使用动态注册表。 npm WARN deprecated @babel/plugin-proposal-optional-chaining@7.21.0: 该提案已并入ECMAScript标准,因此此插件不再维护,请使用@babel/plugin-transform-optional-chaining替代。 npm WARN deprecated w3c-hr-time@1.0.2: 使用平台原生的performance.now()和performance.timeOrigin。 npm WARN deprecated sourcemap-codec@1.4.8: 请使用@jridgewell/sourcemap-codec替代。 npm WARN deprecated uuid@3.4.0: 请升级到7.x或更高版本。旧版本在某些情况下可能使用Math.random(),这存在已知问题。 npm WARN deprecated workbox-cacheable-response@6.6.0: 已废弃,相关功能整合至workbox-background-sync@6.6.0 npm WARN deprecated eip1193-provider@1.0.1: 包已不再受支持,如需更多信息请联系npm支持。 npm WARN deprecated request@2.88.2: request已废弃,可查看相关issue了解详情。 npm WARN deprecated @walletconnect/client@1.8.0: WalletConnect的v1 SDK已废弃,请升级到v2 SDK。 npm WARN deprecated @json-rpc-tools/provider@1.7.6: 包已不再受支持,如需更多信息请联系npm支持。 npm WARN deprecated @walletconnect/ethereum-provider@1.8.0: WalletConnect的v1 SDK已废弃,请升级到v2 SDK。 npm WARN deprecated @json-rpc-tools/utils@1.7.6: 包已不再受支持,如需更多信息请联系npm支持。 npm WARN deprecated @json-rpc-tools/types@1.7.6: 包已不再受支持,如需更多信息请联系npm支持。 npm WARN deprecated emailjs-com@3.2.0: SDK名称已改为@emailjs/browser npm WARN deprecated @walletconnect/qrcode-modal@1.8.0: WalletConnect的v1 SDK已废弃,请升级到v2 SDK。 npm WARN deprecated svgo@1.3.2: 此SVGO版本已不再受支持,请升级到v2.x.x版本。 npm ERR! code 7 npm ERR! path /home/yash/Freelance/degenbulls/node_modules/sqlite3 npm ERR! command failed npm ERR! command sh -c node-pre-gyp install --fallback-to-build
解决方法
- 安装编译依赖:sqlite3需要本地编译环境,Debian/Ubuntu系列系统执行
sudo apt-get install build-essential python3-dev libsqlite3-dev;RHEL/CentOS系列执行sudo yum install gcc-c++ python3-devel sqlite-devel - 清理缓存后重装:执行
npm cache clean --force,删除项目目录下的node_modules文件夹和package-lock.json文件,再重新运行npm install - 指定兼容版本安装:如果项目允许,尝试安装与当前Node版本兼容的sqlite3版本,例如
npm install sqlite3@5.1.6(该版本对Node 16+、18+兼容性较好) - 跳过本地编译:设置环境变量使用预编译二进制包,执行
npm install sqlite3 --build-from-source=false - 检查Node版本兼容性:确认当前Node版本符合sqlite3的要求,可通过nvm工具升级或降级Node版本,确保版本匹配
内容的提问来源于stack exchange,提问作者Yash Kumar
相关产品推荐
相关产品推荐

