Symfony+React项目执行npm命令报错:Missing script: 'watch'
解决Symfony+React项目npm命令缺失问题
你的问题根源很明确:package.json的scripts字段里只定义了test命令,没有watch、dev、build这些你要执行的命令,所以npm执行时会提示找不到对应脚本。
下面是两种适配Symfony项目的靠谱解决办法,对应官方常用的两种前端工具链:
方法一:用Symfony官方推荐的Vite插件(更适合新项目)
- 通过Composer安装Vite相关Bundle:
composer require symfony/vite-bundle symfony/stimulus-bundle
- 重新安装前端依赖:
npm install
执行完这两步后,你的package.json会自动生成dev、build、preview等标准命令,直接运行npm run dev或npm run build即可正常工作。
方法二:用Webpack Encore(传统前端构建工具)
- 安装Webpack Encore Bundle:
composer require symfony/webpack-encore-bundle
- 重新安装前端依赖:
npm install
此时package.json会自动添加watch、dev、build等命令,示例如下:
"scripts": { "dev-server": "encore dev-server", "dev": "encore dev", "watch": "encore dev --watch", "build": "encore production --progress", "test": "echo \"Error: no test specified\" && exit 1" }
之后你就能正常执行npm run watch这类命令了。
手动添加命令(不推荐,易漏依赖)
如果不想重新安装Bundle,也可以手动修改配置:
- 先安装Webpack Encore依赖:
npm install @symfony/webpack-encore --save-dev
- 将package.json的
scripts字段替换为上面示例中的内容。
不过更建议使用前两种方法,官方Bundle会自动配置好所有必要的前端工具和依赖,避免手动配置出错。
内容的提问来源于stack exchange,提问作者nimmbot
相关产品推荐
相关产品推荐

