Laravel 5.4执行php artisan preset react命令提示"Command "preset" is not defined"怎么办?
嘿,这个问题我太熟悉了!Laravel 5.4本身根本没内置preset命令——这个实用的命令是从Laravel 5.5才加入框架核心,后来又被移到了laravel/ui扩展包里。所以你直接在5.4里跑php artisan preset react肯定会碰钉子。下面给你两种靠谱的解决办法:
解决办法1:手动配置React环境(适合想自己掌控流程的同学)
- 先安装React相关的前端依赖,在项目根目录执行:
npm install react react-dom babel-preset-react --save-dev - 打开项目根目录的
webpack.mix.js,修改内容添加React的编译规则:mix.js('resources/assets/js/app.js', 'public/js') .sass('resources/assets/sass/app.scss', 'public/css') .babel(['resources/assets/js/components/**/*.jsx'], 'public/js/components.js'); - 如果项目里没有
.babelrc文件,就新建一个,添加React预设配置:{ "presets": ["es2015", "react"] } - 最后编译前端资源:
完成后你就可以在npm run devresources/assets/js目录下创建React组件(比如Example.jsx),然后在app.js里引入并渲染了。
解决办法2:用第三方适配包快速搞定(省事儿首选)
有开发者专门为Laravel 5.4做了适配的预设包,步骤很简单:
- 先安装这个第三方包:
composer require laravel-frontend-presets/react --dev - 现在就可以跑预设命令了:
php artisan preset react - 最后安装前端依赖并编译:
npm install && npm run dev
小提醒
用第三方包的时候,一定要确认它的版本是适配Laravel 5.4的,避免安装后出现兼容性问题。
内容的提问来源于stack exchange,提问作者Vardan




