Как установить babel и использовать ES6 локально в браузере?
Итак, я следую учебнику, чтобы узнать ES2015 здесь:
http://k33g.github.io/2015/05/02/ES6.html
но я не нахожу этот файл на основе этого учебника:
node_modules/babel-core/browser.js
где я могу получить браузер.Яш? Потому что после того, как я выполню:
npm install babel-core
есть 2 браузера.js in node_modulesbabel-core
1 node_modulesbabel-corelibapiregisterbrowser.js
2 node_modulesbabel-corelibapibrowser.js
какой из них я должен скопировать?
4 ответов
С babel
6.2.0 browser.js
была удалена.
после документация Babel, у вас есть два варианта:
1. Использовать babel-standalone
:
это отдельная построить Бабеля для пользы в non-узла.среды js, включая браузеры. Это замена babel-browser
и используется в официальном Вавилоне repl
2. Bundle свой собственный файл:
используйте bundler как browserify/webpack и требовать напрямую babel-core
модуль npm и убедитесь, что правильно настроить browserify или webpack, чтобы избежать ошибок из-за чистых зависимостей узлов и так далее.
пример конфигурации с использованием webpack (я оставил только один конкретный):
{
...
module: {
loaders: [
...
{
loader: 'json-loader',
test: /\.json$/
}
]
},
node: {
fs: 'empty',
module: 'empty',
net: 'empty'
}
}
потом в коде:
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]
}
)
...
обратите внимание, что плагины и пресеты должны быть обязательными из кода и не могут быть переданы как опция string.
транспилирование в браузере было удалено из Babel 6, однако Daniel15 создал автономную сборку для использования в "не узле".среды js, включая браузеры " здесь:
https://github.com/Daniel15/babel-standalone
все, что вам нужно сделать, это добавить ссылку на вашу страницу:
<script src="https://cdnjs.cloudflare.com/ajax/libs/babel-standalone/6.4.4/babel.min.js"></script>
и затем убедитесь, что вы используете script type="text/babel"
атрибут в ваших ссылках на другие файлы скриптов.
пример асинхронного / await с использованием babel standalone!
<!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>
вам нужно использовать browser.js
с babel-browser
пакет: https://babeljs.io/docs/usage/browser/
и лучше всего использовать компиляцию на стороне сервера.