You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel 9运行npm run dev报compiler.plugin is not a function

报错根因

[webpack-cli] TypeError: compiler.plugin is not a function 是典型的Webpack版本与构建依赖API不兼容问题:compiler.plugin 是Webpack 4及更早版本的钩子注册API,Webpack 5已完全移除该API。Laravel 9项目默认依赖Laravel Mix做前端资源编译,出现该报错的核心原因都是依赖版本错配,常见触发场景:

  • 安装依赖时未按lock文件约束拉取,自动升级到Webpack 5,但项目使用的laravel-mix版本低于v6,不兼容Webpack 5的API
  • 全局安装的webpack、webpack-cli版本和项目本地依赖版本冲突,构建时优先读取了全局的不兼容版本
  • 模板项目自带的依赖锁文件损坏,导致依赖树版本错乱
排查步骤
  • 先确认本地依赖版本,执行以下命令输出当前安装的webpack、laravel-mix版本:
npm ls webpack
npm ls laravel-mix

如果输出结果中webpack版本为5.x,laravel-mix版本低于6.0.0,即可确认是版本不匹配问题。

  • 检查全局依赖冲突,执行以下命令查看全局安装的webpack相关包:
npm ls webpack webpack-cli -g

如果输出存在全局安装的webpack、webpack-cli包,大概率会干扰本地项目的构建流程。

修复方案

根据项目维护需求二选一即可:

方案1:保留现有低版本Mix配置(无需调整webpack.mix.js)

将webpack相关依赖锁定到4.x兼容版本,步骤如下:

  • 删除现有依赖目录和锁文件:
rm -rf node_modules package-lock.json yarn.lock
  • 安装兼容版本的构建依赖:
npm install webpack@^4.47.0 webpack-cli@^3.3.12 --save-dev
  • 重新安装全量依赖并执行构建:
npm install
npm run dev

方案2:升级Mix到兼容Webpack5的版本(推荐长期维护项目使用)

Laravel Mix v6及以上版本原生适配Webpack 5,升级后可彻底解决API兼容问题:

  • 清空旧依赖和锁文件:
rm -rf node_modules package-lock.json yarn.lock
  • 升级laravel-mix到最新稳定版:
npm install laravel-mix@latest --save-dev
  • 检查项目根目录下的webpack.mix.js配置,若存在自定义webpack扩展逻辑,调整为v6版本兼容写法即可,基础配置无需改动。
  • 重新安装依赖并执行构建:
npm install
npm run dev

全局冲突修复

如果排查到存在全局webpack相关依赖冲突,直接卸载全局版本即可,前端构建会优先读取项目本地node_modules内的依赖,无需全局安装webpack:

npm uninstall webpack webpack-cli -g

内容的提问来源于stack exchange,提问作者Manasse

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 10:57:27