Symfony项目运行yarn watch报错:找不到@babel/preset-flow包
解决Symfony Encore + Babel编译错误:Cannot find package '@babel/preset-flow'
问题根源
你在webpack.config.js中配置了@babel/preset-flow这个Babel预设,但未安装对应的包——你之前安装的babel-preset-flow是Babel 6时代的旧包名,Babel 7+统一使用@babel/前缀的包。另外你配置了styled-jsx/babel插件,但从你的app.js代码来看,项目并未用到styled-jsx,这个配置属于多余项,反而可能引发额外问题。
解决步骤
1. 安装正确的@babel/preset-flow包
由于你使用yarn watch执行编译,推荐用yarn安装依赖(也可使用npm,保持包管理工具一致即可):
yarn add --dev @babel/preset-flow # 或使用npm npm install --save-dev @babel/preset-flow
2. 清理不必要的配置(可选但推荐)
如果你的项目不需要Flow类型检查和styled-jsx,直接删除webpack.config.js中以下两行多余配置:
// 移除这两行 babelConfig.presets.push('@babel/preset-flow'); babelConfig.plugins.push('styled-jsx/babel');
若确实需要使用这两个工具,保留配置并确保对应依赖安装完整即可。
3. 重新执行编译命令
完成上述操作后,重新运行编译命令:
yarn watch
M1芯片额外排查方案
M1芯片环境下偶尔会出现依赖安装不完整的情况,若上述步骤无效,可尝试:
- 删除
node_modules文件夹及package-lock.json/yarn.lock文件 - 重新安装所有依赖:
yarn install(或npm install) - 再次执行
yarn watch
内容的提问来源于stack exchange,提问作者A. Cedano
相关产品推荐
相关产品推荐

