2017-04-05 135 views
15

我對Laravel並不陌生,但對JavaScript框架並不熟悉。設置Laravel 5.4使用React

我想在laravel build中使用React,但找不到任何有關如何執行此操作的信息。

我有Laravel 5.4。我知道這是預先擠滿了Vue和Laravel Mix而不是Gulp。

我按照這裏的教程︰https://blog.tighten.co/adding-react-components-to-a-laravel-app但這並不意味着5.4。它提到需要更新gulp文件,但由於Laravel 5.4不使用Gulp,所以沒有一個!

有人可以請幫助一個小教程或幾個步驟,我需要複製,以獲得React在5.4工作?

我已經谷歌搜索,但只能找到NPM的鏈接,這是沒有用的!

回答

22

感謝Joe指出我需要的部分文檔。還有一點點,所以將在下面描述我的步驟以幫助其他人。

  1. 刪除node_modules文件夾。這對於全新的版本不是必需的,但如果您已經遵循任何其他教程並安裝了您不需要的東西,這可以節省一些麻煩。如果您沒有node_modules文件夾,請忽略此步驟。

    請注意上述步驟將刪除您使用NPM安裝的任何東西。

  2. 從項目根目錄運行npm install。這將安裝Laravel使用的所有NPM組件。

  3. 打開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'); 
    
  4. 運行npm run dev從包含在上述問題上的教訓編譯的JavaScript。您的React JS輸出現在應該可以工作。

  5. (可選)使用npm run watch即時編譯。

我真的希望這可以幫助別人儘可能地幫助我!

+3

確保你從'package.json'中刪除了不必要的依賴關係 - 否則'npm install'只會把你擺脫的所有垃圾放回去:p –

4

According to the docs,陣營支持內置在混合:

混合可以自動安裝通天插件必要陣營的支持。要開始使用,更換您的mix.js()的調用mix.react():

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

在幕後,混合會下載並添加相應的巴貝爾預設反應的巴別塔外掛。

我不是100%肯定這是否會自動包含作出反應,你的輸出束 - 我的猜測是沒有(在這種情況下,你將不得不使用正常mix.js()呼叫拉它)。

+0

謝謝喬。還有一點要求,但我會在我自己的回答中發佈,以便其他人看我的需求。 – Wildcard27

+0

@ Wildcard27:是的,我不太熟悉Laravel,所以我想我的答案可能沒有完整的細節。很高興你能夠對它進行排序:) –

+0

說實話,我只是讀了文檔,因爲我在某處讀到Laraval只支持Vue。我希望我能找到它需要改正的地方! – Wildcard27