В настоящее время основные браузеры в основном все поддерживают новые возможности ES6. Среди них браузеры Chrome и Firefox наиболее дружелюбны к новым возможностям ES6. IE7~11 практически не поддерживает ES6.
Ниже приведены статус поддержки и время начала в основных браузерах:
| Chrome 58 | Edge 14 | Firefox 54 | Safari 10 | Opera 55 |
| Январь 2017 | Август 2016 | Март 2017 | Июль 2016 | Август 2018 |
Примеры
Попробуйте »
Подробную информацию о поддержке браузерами можно найти по адресу:http://kangax.github.io/compat-table/es6/
Node.js — это JavaScript, выполняемый на стороне сервера, и он имеет более высокую поддержку ES6. Если вы ещё не знакомы с Node.js, можете прочитать нашУчебник по Node.js。
Для установки Node.js можно обратиться кУстановка и настройка Node.js。
Запуск ES6 в среде Node.js
$ node > let sitename="example" undefined > console.log(sitename) example undefined >
Используйте следующую команду, чтобы просмотреть возможности ES6, уже реализованные в Node.
node --v8-options | grep harmony
webpack
webpack — это сборщик статических модулей для современных приложений JavaScript. Когда webpack обрабатывает приложение, он рекурсивно строит граф зависимостей, содержащий все модули, необходимые приложению, а затем объединяет все эти модули в один или несколько бандлов.
webpack имеет четыре основные концепции:
- Точка входа (entry)
- Вывод (output)
- loader
- Плагины (plugins)
Точка входа (entry)
Свойство entry указывает, какой модуль webpack должен использовать в качестве начальной точки для построения своего внутреннего графа зависимостей. После указания точки входа webpack определит, какие модули и библиотеки (прямо и косвенно) зависят от неё. В webpack есть несколько способов определить entry, как в следующих примерах:
Синтаксис с одной точкой входа (сокращённая запись):
const config = {
entry: "./src/main.js"
}
Синтаксис объекта:
const config = {
app: "./src/main.js",
vendors: "./src/vendors.js"
}
Вывод (output):
Свойство output указывает webpack, куда выводить создаваемые им бандлы и как называть эти файлы. Значение по умолчанию — ./dist:
const config = {
entry: "./src/main.js",
output: {
filename: "bundle.js",
path: path.resolve(__dirname, 'dist')
}
}
loader
Загрузчики позволяют webpack обрабатывать файлы, не являющиеся JavaScript (сам webpack понимает только JavaScript). Загрузчики могут преобразовывать все типы файлов в модули, которые webpack может эффективно обрабатывать. Например, при использовании ES6 во время разработки используйте загрузчики для преобразования синтаксиса ES6 в ES5, как показано в конфигурации ниже:
Плагины (plugins)
Загрузчики используются для преобразования определённых типов модулей, тогда как плагины могут делать гораздо больше. Это включает оптимизацию бандла, сжатие, определение переменных окружения и так далее. Плагины мощны и являются очень важным инструментом для расширения webpack, и могут использоваться для решения различных задач. Использовать плагин также очень просто — просто require() его, а затем добавить его в массив plugins.
Создание приложений с помощью webpack
webpack.config.js
Приведённый выше пример создаёт самую простую конфигурацию. webpack будет собирать, начиная с entry-файла main.js, выполнять преобразование JS через loaders и выводить файл с именем bundle.js. На этом весь процесс завершён.
gulp
gulp — это потоковый инструмент автоматизированной сборки. Он отличается простотой использования, быстрой сборкой, качественными плагинами и лёгкостью изучения, и часто используется в лёгких проектах.
Как использовать?
Установите gulp глобально:
$ npm install --global gulp
Добавьте зависимости в проект:
$ npm install --save-dev gulp
Создайте файл с именем gulpfile.js в корневом каталоге проекта:
const gulp = require('gulp');
// default 表示一个任务名,为默认执行任务
gulp.task('default', function() {
// 放置默认的任务代码
})
Запустите gulp:
$ gulp