2017-08-26 34 views
5

Kompiluję moje pliki javascript za pomocą Laravel mix, a ponieważ nie mam jeszcze dużej wiedzy na temat Babel i package.json, chcę zapytać, czy Laravel Mix obsługuje ES8, zwłaszcza asynchroniczne/oczekiwane?Czy Laravel Mix obsługuje ES8?

Jeśli spróbuję, nie mogę powiedzieć, czy Mix jest transponowany async/czeka na ES5, czy też async/await jest obsługiwany przez moją przeglądarkę, która jest najnowszą wersją. Nadal chcę, aby był on transponowany do ES2015, więc aplikacja będzie nadal działać w przeglądarkach obsługujących tylko ES5.

+2

Laravel Mix używa babel pod maską, jeśli poprawne wtyczki zostały dodane do babel, obsługiwana jest składnia async/await. Obecnie badam, jak to zrobić, dam ci znać. – Cobolt

+2

@Cobolt świetnie, każda pomoc byłaby doceniona. Podekscytowany wiedząc, jak dochodzenie idzie, jestem zaskoczony, ponieważ nie wiem, gdzie zacząć szukać, mam Googled wiele, ale bezskutecznie. – jcsoriano

Odpowiedz

11

asynchroniczny/czekają z laravel Mix:

Jeśli używasz laravel Mix z async Box oraz wykorzystywanie i czekają pojawić się następujący komunikat o błędzie:

Uncaught ReferenceError: regeneratorRuntime is not defined

Ale laravel Mix wykorzystuje Babel do obsługi ES2015. Możemy dostosować kompilację, jeśli zajdzie taka potrzeba.

Aby uzyskać asynchroniczny/Oczekujcie pracy, dodaj plik .babelrc do katalogu z tej treści:

{ 
    "presets": ["es2015", "stage-3"], 
    "plugins": [ 
    "transform-runtime" 
    ] 
} 

i zainstaluje potrzebne pakiety NPM:

npm install babel-preset-es2015 babel-preset-stage-3 babel-plugin-transform-runtime --save-dev 

Ważną rzeczą (co spowodowało błąd) to wtyczka transform-runtime. Nie jest on dostarczany z Laravel Mix, ale potrzebujesz go, aby uruchomić funkcję async/await.

ES8:

Jak widać powyżej, można użyć różnych zaprogramowanych etapy Babel. Za ich pomocą można korzystać z funkcji uwzględnionych w ES8 lub nowszym. Na przykład stage-3 wprowadza funkcję async/await.

Mają one overview of the stages na swojej stronie internetowej.

+3

To .Babelrc, a nie .bashrc, prawda? – MartinSuecia

+0

@MartinSuecia Masz rację. Naprawione. –

+3

Dlaczego ta odpowiedź nie zawiera setek przebojów? Cholera jasna, uratowałaś mi godziny, świetną robotę! – Mjh