phpstorm运行webpack/vite卡在“starting...”主因是环境与配置未对齐:node解释器未绑定、node_modules未excluded、inotify句柄耗尽、运行配置误用javascript debug或node.js类型路径错误。

PhpStorm 运行 Webpack 或 Vite 时卡在“Starting...”“Loading...”或终端无输出,基本不是构建工具本身挂了,而是 IDE 的运行配置和环境隔离没对齐——常见表现是进程启动后就静默、HMR 不触发、浏览器打不开,甚至 npm run dev 在终端里能跑,但在 PhpStorm 里点 ▶️ 就卡住不动。
Webpack 启动卡在 “Starting webpack-dev-server…”
这不是 webpack 没起来,是 PhpStorm 没真正把控制权交给它,或者 devServer 配置被 IDE 的代理逻辑劫持了。
-
devServer.hot必须显式设为true(Webpack 5+ 默认开启,但老项目常被关掉;光勾 IDE 的 “Use Hot Swap” 没用) -
devServer.watchFiles如果设置了,得覆盖你编辑的路径,比如['src/**/*', 'public/**/*'];漏掉任意一类,变更就不会触发重编译 - 别用 “JavaScript file” 类型运行配置——它会直接执行
webpack.config.js,而不是启动 devServer。正确做法是:Run Configuration →Node.js类型 →JavaScript file填node_modules/webpack-cli/bin/cli.js,Application parameters填--config webpack.config.js --mode development - 如果用了 pnpm,路径不是
node_modules/webpack-cli/bin/cli.js,而是类似node_modules/.pnpm/webpack@5.92.1/node_modules/webpack-cli/bin/cli.js,必须手动补全,抄错版本号就卡住
Vite 启动卡在 “vite is starting…” 或终端空转
根本原因通常是 Node 环境没绑定、命令没找到,或 PhpStorm 内置服务和 Vite 开发服务器端口冲突。
-
Command 'vite' not found错误:不是没装 vite,而是 PhpStorm 没把node_modules/.bin加入 PATH。确认 Settings → Languages & Frameworks → Node.js and NPM → Node interpreter 指向项目实际用的 node(如/usr/local/bin/node),再确保node_modules/.bin/vite存在 - 浏览器打不开
http://localhost:5173/或热更新失效:删掉所有类型为JavaScript Debug的运行配置——它会强制启用 PhpStorm 内置静态服务(http://localhost:63342/),和 Vite 的localhost:5173冲突,互相劫持模块请求 - 必须新建 npm 运行配置:Command 填
run,Scripts 选dev(对应package.json里的"dev": "vite"),并勾选Run npm script in new terminal,避免复用终端导致环境变量污染 - 启动后仍卡住?检查系统级
_JAVA_OPTIONS是否被设置(常见于/etc/profile或~/.bashrc),它会导致 PhpStorm 渲染异常、参数冲突,启动日志会显示Picked up _JAVA_OPTIONS
卡住时 CPU 低、磁盘静默,其实是索引死锁
表面看是构建命令卡住,实际是 PhpStorm 还在后台拼命索引 node_modules 或 vendor,导致资源耗尽、inotify 句柄占满,连文件变更都监听不到。
- 打开 Help → Show Log in Explorer,搜
Indexing started和Indexing finished—— 如果后者迟迟不出现,说明索引根本没结束,构建进程被阻塞 - 检查 File → Project Structure → Modules,确认
node_modules、vendor、dist、storage全部标为Excluded(图标为红色,灰色 = 仍监听) - Linux 下查 inotify 限制:
cat /proc/sys/fs/inotify/max_user_watches,默认 8192 不够一个node_modules;永久改:写入/etc/sysctl.d/60-jetbrains.conf,内容为fs.inotify.max_user_watches=524288,再执行sudo sysctl -p --system - 标记
Excluded后必须重启 PhpStorm,仅重载项目无效;改完phpstorm64.vmoptions也一样,热重载不生效
最常被忽略的是:卡住往往不是单一问题,而是 Node 环境 + 目录排除 + inotify 限制 + 运行配置四者同时出错。先查日志确认是构建卡还是索引卡,再逐层排除——别一上来就调 JVM 内存,那只是掩盖症状。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











