/ / Jak zainstalować Babel i używać ES6 lokalnie w przeglądarce? - node.js, babeljs

Jak zainstalować Babel i korzystać z ES6 lokalnie w przeglądarce? - node.js, babeljs

Tak więc, uczę się ES2015 tutaj:

http://k33g.github.io/2015/05/02/ES6.html

Ale nie mogę znaleźć tego pliku na podstawie tego samouczka:

node_modules/babel-core/browser.js

Gdzie mogę uzyskać browser.js? Ponieważ po wykonaniu:

npm install babel-core

są 2 przeglądarki.js w node_modulesbabel-core

1 node_modulesbabel-corelibapiregisterbrowser.js
2 node_modulesbabel-corelibapibrowser.js

Który powinienem skopiować?

Odpowiedzi:

7 dla odpowiedzi № 1

Od babel 6.2.0 browser.js zostało usunięte.

Następujący Dokumentacja Babelmasz dwie opcje:

1. Użyj babel-standalone:

Jest to samodzielna wersja Babel do użytku w środowiskach innych niż Node.js, w tym w przeglądarkach. Jest to zamiennik babel-browser i jest używany w oficjalnej Babel repl

2. Dołącz własny plik:

Użyj programu pakującego, takiego jak browserify / webpack i wymagaj bezpośrednio babel-core moduł npm i upewnij się, że poprawnie skonfigurujesz przeglądarkę internetową lub pakiet WWW, aby uniknąć błędów spowodowanych czystymi zależnościami między węzłami i tak dalej.

Przykład konfiguracji za pomocą webpacka (zostawiłem tylko jeden konkretny):

{
...
module: {
loaders: [
...
{
loader: "json-loader",
test: /.json$/
}
]
},
node: {
fs: "empty",
module: "empty",
net: "empty"
}
}

Następnie w swoim kodzie:

import {transform} from "babel-core";
import es2015 from "babel-preset-es2015";
import transformRuntime from "babel-plugin-transform-runtime";

...
transform(
/* your ES6 code */,
{
presets: [es2015],
plugins: [transformRuntime]
}
)
...

Pamiętaj, że wtyczki i ustawienia muszą być wymagane od kodu i nie mogą być przekazywane jako opcja ciągu.


6 dla odpowiedzi nr 2

Transpilacja w przeglądarce została usunięta z Babel 6, jednak Daniel15 stworzył samodzielną kompilację do użytku w „środowiskach innych niż Node.js, włączając przeglądarki” tutaj:

https://github.com/Daniel15/babel-standalone

Wszystko, co musisz zrobić, to dodać to odniesienie do swojej strony: <script src="https://cdnjs.cloudflare.com/ajax/libs/babel-standalone/6.4.4/babel.min.js"></script>

A następnie upewnij się, że używasz script type="text/babel" atrybut w odniesieniach do innych plików skryptów.


5 dla odpowiedzi nr 3

Przykład asynchronizacji / czekania przy użyciu samodzielnego Babel!

<!DOCTYPE html>
<html>
<head>
</head>
<body>
<h1>Standalone Async/Await Example</h1>
<!-- Load Babel -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/babel-standalone/6.14.0/babel.min.js"></script>
<script type="text/babel" data-presets="es2017, stage-3" data-plugins="syntax-async-functions">
/* Output of Babel object */
console.log("Babel =", Babel);

var users = { "123" : { name : "Joe Montana"} };
process();
async function process()
{
var id = await getId();
console.log("User ID: "+id);

var name = await getUserName(id);
console.log("User Name: "+name);
}
function getId()
{
return new Promise((resolve, reject) => {
setTimeout(() => { console.log("calling"); resolve("123"); }, 2000);
});
}
function getUserName(id)
{
return new Promise((resolve, reject) => {
setTimeout(() => { console.log("requesting user name with id: "+id); resolve(users[id].name); }, 3000);
});
}
</script>
</body>
</html>


1 dla odpowiedzi nr 4

Potrzebujesz użyć browser.js od babel-browser pakiet: https://babeljs.io/docs/usage/browser/

A najlepsze jest użycie kompilacji po stronie serwera.