部署至Heroku时ESLint加载airbnb配置失败问题求助
以下是针对你的场景的可行解决步骤:
确保client子目录的依赖在部署时被正确安装
Heroku默认只会安装项目根目录package.json里的依赖,而你的ESLint配置和依赖都在client子目录里。在根目录的package.json中添加postinstall脚本,让Heroku在完成根目录依赖安装后自动安装client的依赖:"scripts": { "postinstall": "cd client && npm install", // 其他现有脚本... }提交修改后的
package.json和client目录下的package-lock.json(或yarn.lock)到Git,重新部署。本地安装airbnb的ESLint依赖(不要用全局)
进入client子目录,执行本地安装命令,确保所有peer依赖都被安装到项目本地:cd client npx install-peerdeps --dev eslint-config-airbnb这会把
eslint-config-airbnb及其所有必需的peer依赖(比如eslint-plugin-import、eslint-plugin-react等)添加到client的devDependencies中,Heroku部署时会自动安装这些依赖。让ESLint在client目录下执行
检查根目录的构建或lint脚本,确保ESLint是在client目录下运行的,而不是根目录。比如在根目录package.json中修改构建脚本:"scripts": { "build": "cd client && npm run build", "lint": "eslint client/" // 其他现有脚本... }这样Heroku在执行构建或lint时,会定位到正确的目录读取ESLint配置。
检查client目录的.eslintrc.json配置
确认配置文件中的extends字段拼写正确,比如:{ "extends": "airbnb", "env": { "browser": true } // 其他配置... }如果是纯JavaScript项目(无React),可以改用
"airbnb-base"。避免根目录触发ESLint检查
确保根目录的package.json中没有会在根目录执行ESLint的脚本,比如不要直接写"lint": "eslint .",这样会扫描根目录(无ESLint配置)导致错误。
内容的提问来源于stack exchange,提问作者Kibs J.

