在Heroku部署Strapi应用时遇'Cannot read property '@strapi/plugin-i18n' of undefined'错误
Strapi部署Heroku时npm依赖错误的解决思路
移除
npm-force-resolutions相关配置
npm 6.x对resolutions字段支持不完善,加上preinstall脚本强制修改依赖版本,容易导致依赖解析逻辑异常。操作如下:- 删除package.json中的
preinstall脚本 - 删除
resolutions字段 - 卸载
npm-force-resolutions依赖:执行npm uninstall npm-force-resolutions,并从devDependencies中移除该条目
- 删除package.json中的
升级Node与npm版本
Strapi 4.10.x官方推荐使用Node 16.x,Node 14.x已接近生命周期结束,兼容性存在隐患。更新package.json的engines字段:"engines": { "node": "16.x", "npm": "8.x" }清除Heroku构建缓存
旧缓存可能残留异常依赖,执行命令清除:heroku builds:cache:purge调整Strapi依赖版本声明
将Strapi核心及插件的版本号改为带^的兼容版本,避免版本锁定过死引发依赖树冲突:"dependencies": { "@strapi/plugin-i18n": "^4.10.2", "@strapi/plugin-users-permissions": "^4.10.2", "@strapi/strapi": "^4.10.2", "better-sqlite3": "8.0.1", "pg": "^8.10.0" }本地预验证构建
在本地执行以下命令,确保本地环境能正常完成依赖安装与项目构建,排除本地问题后再推送至Heroku:rm -rf node_modules package-lock.json npm install strapi build
内容的提问来源于stack exchange,提问作者Austin Croucher
相关产品推荐
相关产品推荐

