laravel 8 当前未启用对实验性语法“jsx”的支持

swa*_*tra 0 laravel reactjs

我在 laravel 8 中使用 React js,我想通过 npm 安装它来使用它,而不使用 laravel ui,但我收到了此错误

小智 6

我刚刚遇到这个问题,我认为运行哪个版本的 laravel(即 7 或 8)并不重要。首先,检查 package.json 是否拥有 laravel-mix 版本 5。如果这样做,您需要版本 6+,可以通过以下方式实现:

  1. 从 npm 安装最新版本npm i -D laravel-mix@latest。
  2. 验证 package.json 中的条目是否包含“^6.0.9”或以 6 或更高数字开头的内容。
  3. 复制以下代码并粘贴到 webpack.mix.js 中的 mix.js 条目上。
 mix.js('resources/js/app.js', 'public/js')
    .sass('resources/sass/app.scss', 'public/css')
    .react();
Run Code Online (Sandbox Code Playgroud)
  1. 运行npm run watch或npm run dev查看 laravel-mix 安装正确的 babel dev 依赖项并构建。

注意:我添加到 mix.js 而不是创建新的,因为我没有使用 .jsx 文件。如果是,请在 webpack.mix.js 中添加一个新条目,如下所示。

mix.js('resources/js/app.jsx', 'public/js')
   .react();
Run Code Online (Sandbox Code Playgroud)

资料来源:Laravel Mix React 文档和我的冷静。

webpack.mix.js 中您的问题的可能性的完整示例。如果您使用 jsx,请删除第一个 mix.js 调用中的 .react() 并取消注释第二个 mix.js。

const mix = require('laravel-mix');

/*
 |--------------------------------------------------------------------------
 | Mix Asset Management
 |--------------------------------------------------------------------------
 |
 | Mix provides a clean, fluent API for defining some Webpack build steps
 | for your Laravel application. By default, we are compiling the Sass
 | file for the application as well as bundling up all the JS files.
 |
 */

mix.js('resources/js/app.js', 'public/js')
    .sass('resources/sass/app.scss', 'public/css')
    .react();

// mix.js('resources/js/app.jsx', 'public/js')
//     .react();
Run Code Online (Sandbox Code Playgroud)

由于我是新贡献者,如果答案可以接受,请接受。