2020-10-20 16:20:06
出现“Module not found: Error: Can't resolve 'babel_loader'”错误时,通常是由于Webpack配置文件中对babel-loader的名称拼写错误导致的。 以下是详细的排查与解决方法:
核心原因检查loader名称拼写:
打开webpack.config.js,找到module.rules中的loader字段。
确认值为babel-loader(连字符),而非babel_loader(下划线)。
错误示例:use: { loader: 'babel_loader' // 错误:使用下划线}
正确示例:use: { loader: 'babel-loader' // 正确:使用连字符}
验证包是否安装:
在项目根目录运行以下命令,确认babel-loader已安装:
npm:npm list babel-loader
yarn:yarn why babel-loader
若未安装或版本异常,重新安装:
npm:npm install babel-loader --save-dev
yarn:yarn add babel-loader --dev
清理缓存与重新安装依赖:
删除node_modules和锁文件(package-lock.json或yarn.lock):
macOS/Linux:rm -rf node_modules && rm package-lock.json(或yarn.lock)
Windows:rd /s /q node_modules && del package-lock.json(或yarn.lock)
清理缓存:
npm:npm cache clean --force
yarn:yarn cache clean
重新安装依赖:npm install或yarn install。
检查Webpack的resolve配置:
确认resolve.modules包含node_modules(使用下划线),且路径为绝对路径:resolve: { modules: [path.resolve(__dirname, 'node_modules')] // 正确写法}
避免使用node-modules(连字符)等错误拼写。
确认Webpack配置路径:
确保运行Webpack命令时使用了正确的配置文件。例如:webpack --config webpack.config.js
若使用自定义文件名,需通过--config参数指定。