Vercel部署React应用报错:sh: webpack: command not found
解决Vercel部署时
webpack: command not found的问题 以下是几个针对性的解决思路:
修改build命令,使用npx调用webpack
直接在build脚本里添加npx前缀调用webpack,npx会自动从项目本地的node_modules/.bin目录查找可执行文件,规避环境变量路径不匹配的问题。修改后的scripts配置如下:"scripts": { // 其他脚本保持不变 "build": "echo 'Building webpack dist folder' && rm -rf dist && npx webpack --mode production --env production" }统一Vercel与本地的Node.js版本
Vercel默认使用的Node版本可能和你的本地环境不一致,容易引发依赖安装或执行异常。可以通过两种方式统一版本:- 在项目根目录创建
.nvmrc文件,写入本地Node版本号:18.12.1,Vercel会自动读取该文件使用对应版本; - 进入Vercel项目的「Settings」->「Build & Development Settings」,手动设置
Node.js Version为18.x。
- 在项目根目录创建
使用
npm ci替代npm i进行依赖安装
Vercel默认的npm i可能依赖缓存导致安装不完整,npm ci会严格按照package-lock.json的版本重新安装所有依赖,彻底排除缓存干扰。在Vercel项目的「Settings」->「Build & Development Settings」里,将Install Command修改为npm ci。检查.gitignore配置(可选)
确认项目的.gitignore文件没有错误忽略package-lock.json,如果该文件被排除在版本控制外,Vercel安装依赖时可能生成不一致的依赖树,导致webpack无法正常调用。
内容的提问来源于stack exchange,提问作者Konflex
相关产品推荐
相关产品推荐

