Настройка Laravel 5.4 для использования React

Я не новичок в Laravel, но новичок в JavaScript-инфраструктурах.

Я хочу использовать React в сборке laravel, но не могу найти никакой информации о том, как это сделать.

У меня есть Laravel 5.4. Я знаю, что это поставляется с пакетом Vue и Laravel Mix вместо Gulp.

Я следую учебнику здесь: https://blog.tighten.co/adding-react-components-to-a-laravel-app, но это не относится к 5.4. Он упоминает, что нужно обновить файл gulpfile, но поскольку Laravel 5.4 не использует Gulp, его нет!

Может кто-то может помочь с небольшим учебником или несколькими шагами, которые мне нужно реплицировать, чтобы заставить React работать в 5.4?

У меня есть Googled, но можно найти только ссылки NPM, которые менее полезны!

Ответы

Ответ 1

Спасибо Джо за то, что он указал на часть документов, которые мне нужны. Было немного больше, чтобы описать мои шаги ниже, чтобы помочь кому-то еще.

  • Удалите папку node_modules. Это не обязательно для новых новинок, но если вы следовали за любыми другими учебниками и устанавливали вещи, которые вам не нужны, это сэкономит несколько головных болей. Если у вас нет папки node_modules, проигнорируйте этот шаг.

    Обратите внимание на, что приведенный выше шаг удалит все, что вы установили, используя NPM.

  • Запустите npm install из корня проекта. Это установит все компоненты NPM, используемые Laravel.

  • Откройте webpack.mix.js и измените:

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

    к

    mix.react('resources/assets/js/app.js', 'public/js')
        .sass('resources/assets/sass/app.scss', 'public/css');
    
  • Запустите npm run dev, чтобы скомпилировать Javascript из урока, содержащегося в вопросе выше. Теперь ваши работы React JS должны работать.

  • (необязательно) Используйте npm run watch для компиляции на лету.

Я действительно надеюсь, что это поможет кому-то другому, так как это помогло мне!

Ответ 2

В соответствии с документами поддержка React встроена в Mix:

Mix может автоматически устанавливать плагины Babel, необходимые для поддержки React. Чтобы начать работу, замените вызов mix.js() на mix.react():

mix.react('resources/assets/js/app.jsx', 'public/js');

За кулисами Mix загрузит и включит соответствующий Babel-предустановленный ответный плагин Babel.

Я не уверен на 100% независимо от того, будет ли это автоматически включать React в ваш выходной пакет - моя догадка не будет (в этом случае вам придется использовать обычный вызов mix.js(), чтобы втянуть его).