Как использовать ES6 в webpack.config? Как этот репозиторий https://github.com/kriasoft/react-starter-kit делает?
Например:
используя это
import webpack from 'webpack';
вместо того
var webpack = require('webpack');
Это скорее любопытство, а не необходимость.
which webpack
"Ответы:
Попробуйте назвать свой конфиг как
webpack.config.babel.js
. Вы должны включить Babel-Register в проект. Пример при реакции-роутере-бутстрапе .Webpack полагается на внутреннюю интерпретацию, чтобы сделать эту работу.
источник
npm run
этот скрипт:webpack --config webpack.config.babel.js
.--config
.babel-loader
модуль также требуетсяecho '{ "presets": ["es2015"] }' > .babelrc
В качестве альтернативы тому, что предлагает @bebraw, вы можете создать скрипт автоматизации JavaScript с синтаксисом ES6 +:
И выполнить это с Babel:
PS : вызов веб-пакета через JavaScript API может быть лучшим подходом (чем вызов через веб-интерфейс), когда вам нужно реализовать более сложные шаги сборки. Например, после того, как пакет на стороне сервера готов, запустите сервер приложений Node.js и сразу после запуска сервера Node.js запустите сервер BrowserSync dev.
Смотрите также:
package.json/scripts
,tools/bundle.js
,tools/webpack.config.js
)run.js
,webpack.config.js
,node run
)источник
Другой подход заключается в НПМ скрипт вроде этого:
"webpack": "babel-node ./node_modules/webpack/bin/webpack"
и запустить его следующим образом:npm run webpack
.источник
babel-node ./node_modules/webpack/bin/webpack --config custom-webpack.config
У меня возникла проблема с запуском решения @ Juho с Webpack 2. Документы по миграции Webpack предлагают вам отказаться от разбора модуля babel:
К сожалению, это вступает в противоречие с функциональностью автоматического регистра Babel. Удаление
из вавилонского конфига опять все заработало. Тем не менее, это может привести к прерыванию тряски дерева, поэтому полное решение будет включать перезапись предустановок в параметрах загрузчика :
Редактировать , 13 ноября 2017 года; обновлен фрагмент конфигурации webpack до Webpack 3 (спасибо @ x-yuri). Старый фрагмент Webpack 2:
источник
module:{rules: [{test: /\.js$/, include: path.resolve('src'), loader: 'babel-loader', options: {babelrc: false, presets: [['env', {modules: false}]]}}]}
( суть ).-loader
суффикс больше не является обязательным. Попытайся избежатьexclude
и предпочитайтеinclude
. Строки в include / exclude работают только при абсолютных путях.query
был переименован вoptions
.{modules: false}
в ,.babelrc
чтобы иметь возможность использоватьimport
«S вwebpack.config.babel.js
.-loader
необходимо добавить суффикс обратно. Webpack.js.org/migrate/3/…Это действительно легко, но это не было очевидно для меня из любого из ответов, поэтому, если кто-то еще смущен, как я:
Просто добавьте
.babel
часть вашего имени файла перед расширением (при условии, что у вас естьbabel-register
установили его как зависимость).Пример:
источник
require
. Это странно, не так ли?Вот что сработало для меня с помощью веб-пакета 4:
В
package.json
:Вы можете четко видеть, как используется каждая зависимость, поэтому никаких сюрпризов нет.
Обратите внимание, что я использую
webpack-serve
--require , но если вы хотите использоватьwebpack
команду вместо, замените ее наwebpack --config-register
. В любом случае,@babel/register
необходимо сделать эту работу.И это все!
yarn dev
И вы можете использовать
es6
в конфиге!Для
webpack-dev-server
, используйте--config-register
параметр, который такой же, как сwebpack
командойНОТА:
НЕТ необходимости переименовывать файл конфигурации в
webpack.config.babel.js
(как предполагает принятый ответ).webpack.config.js
будет работать просто отлично.источник
--config-register
опцию. Также репозиторий дляwebpack-serve
перемещен здесь: github.com/shellscape/webpack-servewebpack --config-register @babel/register --config webpack/development.config.js
мне нужно было указать --config, потому что моя конфигурация webpack находится в папке. Спасибо!Еще один способ - использовать аргумент require для узла:
node -r babel-register ./node_modules/webpack/bin/webpack
Нашел этот путь в электронно-реагирующем шаблоне , посмотри
build-main
иbuild-renderer
скрипты.источник
Конфигурация для Babel 7 и Webpack 4
package.json
.babelrc
webpack.config.babel.js
источник
Переименовать
webpack.config.js
вwebpack.config.babel.js
.Тогда в .babelrc:
{"presets": ["es2015"]}
Однако, если вы хотите использовать другую конфигурацию babel для babel-cli, ваш .babelrc может выглядеть примерно так:
И в package.json:
Это глупо, но
{"modules": false}
сломает веб-пакет, если вы не используете разные envs.Для получения дополнительной информации о .babelrc, проверьте официальные документы .
источник
Для TypeScript : прямо с https://webpack.js.org/configuration/configuration-languages/
затем перейдите к написанию вашего, например: webpack.config.ts
Проверьте ссылку для получения более подробной информации, где вы можете использовать плагин, чтобы иметь отдельный файл tsconfig только для конфигурации webpack, если вы не ориентируетесь на commonjs (это требование для работы, так как он полагается на ts-node).
источник
Не хватает представителя, чтобы комментировать, но я хотел бы добавить для любого пользователя TypeScript аналогичное решение @Sandrik выше
У меня есть два сценария, которые я использую, указывая на конфиги веб-пакетов (файлы JS), которые содержат синтаксис ES6.
"start-dev": "./node_modules/.bin/ts-node ./node_modules/webpack-dev-server/bin/webpack-dev-server.js --config ./webpack/webpack.config.dev.js"
и
"build": "./node_modules/.bin/ts-node ./node_modules/webpack/bin/webpack.js --config webpack/webpack.config.js"
источник
Мой лучший подход вместе со скриптом npm
и настройте остальные скрипты согласно вашему требованию для Babel
источник
После тонны документов ...
Просто установите пресет es2015 (не env !!!) и добавьте его в
Переименовать
webpack.config.js
вwebpack.config.babel.js
источник
Использование Webpack 4 и Babel 7
Для настройки файла конфигурации веб-пакета для использования ES2015 требуется Babel:
Установите зависимости dev:
Создать
.babelrc
файл:Создайте конфигурацию вашего веб-пакета
webpack.config.babel.js
:Создайте свои скрипты в
package.json
:Запустить
npm run build
иnpm start
.Конфигурация webpack основана на примере проекта со следующей структурой каталогов:
Пример проекта: язык конфигурации Webpack с использованием Babel
источник
Добавление es6 в веб-пакет - это трехэтапный процесс
В webpack.config.js добавить
источник
Ты не можешь Вы должны преобразовать его в CommonJS с помощью
babel
илиesm
.https://github.com/webpack/webpack-cli/issues/282
Но вы можете запустить
webpack -r esm @babel/register
источник