Jak korzystać z ES6 w webpack.config? Podobnie jak w przypadku tego repo https://github.com/kriasoft/react-starter-kit ?
Na przykład:
używając tego
import webpack from 'webpack';
zamiast
var webpack = require('webpack');
To raczej ciekawość niż potrzeba.
which webpack
”Odpowiedzi:
Spróbuj nazwać swoją konfigurację jako
webpack.config.babel.js
. Powinieneś mieć rejestr babel włączony do projektu. Przykład w React-Router-Bootstrap .Aby to działało, Webpack polega na wewnętrznym tłumaczeniu .
źródło
npm run
ten skrypt:webpack --config webpack.config.babel.js
.--config
.babel-loader
moduł jest również wymaganyecho '{ "presets": ["es2015"] }' > .babelrc
Jako alternatywę dla sugestii @bebraw możesz utworzyć skrypt automatyzacji JavaScript ze składnią ES6 +:
I wykonaj to za pomocą babel:
PS : Wywoływanie webpacka za pomocą JavaScript API może być lepszym podejściem (niż wywoływanie go z wiersza poleceń), gdy trzeba wdrożyć bardziej złożone kroki kompilacji. Np. Po przygotowaniu pakietu po stronie serwera uruchom serwer aplikacji Node.js, a zaraz po uruchomieniu serwera Node.js uruchom serwer dev BrowserSync.
Zobacz też:
package.json/scripts
,tools/bundle.js
,tools/webpack.config.js
)run.js
,webpack.config.js
,node run
)źródło
Innym rozwiązaniem jest mieć skrypt npm takiego:
"webpack": "babel-node ./node_modules/webpack/bin/webpack"
i uruchomić go tak:npm run webpack
.źródło
babel-node ./node_modules/webpack/bin/webpack --config custom-webpack.config
Miałem problem z uruchomieniem rozwiązania @ Juho w pakiecie Webpack 2. Dokumenty dotyczące migracji pakietu Webpack sugerują wyłączenie analizy składni modułu babel:
Niestety koliduje to z funkcją automatycznego rejestru babel. Usuwanie
z konfiguracji Babel znów działało. Spowodowałoby to jednak przerwanie wstrząsania drzewem, więc kompletne rozwiązanie wymagałoby zastąpienia ustawień wstępnych w opcjach modułu ładującego :
Edycja , 13 listopada 2017 r .; zaktualizowany fragment konfiguracji webpacka do Webpack 3 (dzięki @ x-yuri). Stary fragment kodu pakietu Webpack 2:
źródło
module:{rules: [{test: /\.js$/, include: path.resolve('src'), loader: 'babel-loader', options: {babelrc: false, presets: [['env', {modules: false}]]}}]}
( gist ).-loader
sufiks nie jest już opcjonalny. Staraj się unikaćexclude
i woliszinclude
. Ciągi znaków włączaj / wyłączaj działają tylko wtedy, gdy ścieżki bezwzględne.query
został przemianowany naoptions
.{modules: false}
się.babelrc
, aby móc korzystać zimport
„swwebpack.config.babel.js
.-loader
należy dodać przyrostek webpack.js.org/migrate/3/…To jest naprawdę łatwe, ale nie było dla mnie oczywiste z żadnej z odpowiedzi, więc jeśli ktoś jest zdezorientowany jak ja:
Po prostu dołącz
.babel
do części nazwy pliku przed rozszerzeniem (zakładając, żebabel-register
zainstalowałeś jako zależność).Przykład:
źródło
require
. To dziwne, prawda?Oto, co działało dla mnie przy użyciu webpack 4:
W
package.json
:Możesz wyraźnie zobaczyć, w jaki sposób używana jest każda zależność, więc nie ma tam niespodzianek.
Uwaga: Używam
webpack-serve
--require , ale jeśliwebpack
zamiast tego chcesz użyć polecenia, zamień je nawebpack --config-register
. W obu przypadkach@babel/register
jest to konieczne, aby to zadziałało.I to wszystko!
yarn dev
I możesz używać
es6
w konfiguracji!Dla
webpack-dev-server
użyj--config-register
opcji, która jest taka sama jak w przypadkuwebpack
poleceniaUWAGA:
NIE trzeba zmieniać nazwy pliku konfiguracyjnego na
webpack.config.babel.js
(jak sugeruje zaakceptowana odpowiedź).webpack.config.js
będzie działać dobrze.źródło
--config-register
opcji. Również repozytoriumwebpack-serve
przeniesione tutaj: github.com/shellscape/webpack-servewebpack --config-register @babel/register --config webpack/development.config.js
musiałem podać specyfikację --config, ponieważ moja konfiguracja webpacka znajduje się w folderze. Dziękuję Ci!Jeszcze jednym sposobem jest użycie argumentu wymaganego dla węzła:
node -r babel-register ./node_modules/webpack/bin/webpack
Znalezione w ten sposób w płytce reagującej elektronowo , spojrzeniu
build-main
ibuild-renderer
skryptach.źródło
Konfiguracja Babel 7 i Webpack 4
pakiet.json
.babelrc
webpack.config.babel.js
źródło
Zmień nazwę
webpack.config.js
nawebpack.config.babel.js
.Następnie w .babelrc:
{"presets": ["es2015"]}
Jeśli jednak chcesz użyć innej konfiguracji babel dla babel-cli, twój .babelrc może wyglądać mniej więcej tak:
A w pakiecie.json:
To głupie, ale
{"modules": false}
zepsuje paczkę, jeśli nie użyjesz różnych env.Aby uzyskać więcej informacji o .babelrc, sprawdź oficjalne dokumenty .
źródło
W przypadku TypeScript : prosto z https://webpack.js.org/configuration/configuration-languages/
następnie kontynuuj pisanie np.: webpack.config.ts
Sprawdź link, aby uzyskać więcej informacji, w których możesz użyć wtyczki, aby mieć osobny plik tsconfig tylko dla konfiguracji webpacka, jeśli nie celujesz w commonjs (co jest wymagane, aby działało, ponieważ opiera się na ts-node).
źródło
Nie mam wystarczającej liczby przedstawicieli do skomentowania, ale chciałem dodać dla każdego użytkownika TypeScript podobne rozwiązanie do @Sandrik powyżej
Mam dwa skrypty, których używam, wskazując na konfiguracje webpack (pliki JS), które zawierają składnię ES6.
"start-dev": "./node_modules/.bin/ts-node ./node_modules/webpack-dev-server/bin/webpack-dev-server.js --config ./webpack/webpack.config.dev.js"
i
"build": "./node_modules/.bin/ts-node ./node_modules/webpack/bin/webpack.js --config webpack/webpack.config.js"
źródło
Moje najlepsze podejście wraz ze skryptem npm to
i skonfiguruj pozostałe skrypty zgodnie z wymaganiami dla Babel
źródło
Po tonach dokumentów ...
Wystarczy zainstalować preset es2015 (nie env !!!) i dodać go do
Zmień nazwę
webpack.config.js
nawebpack.config.babel.js
źródło
Korzystanie z Webpack 4 i Babel 7
Aby skonfigurować plik konfiguracyjny pakietu WWW do używania ES2015, wymagana jest Babel:
Zainstaluj zależności programistyczne:
Utwórz
.babelrc
plik:Utwórz konfigurację pakietu internetowego
webpack.config.babel.js
:Utwórz swoje skrypty w
package.json
:Uruchom
npm run build
inpm start
.Konfiguracja webpacka oparta jest na przykładowym projekcie o następującej strukturze katalogów:
Przykładowy projekt: Webpack Configuration Language using Babel
źródło
Dodanie es6 do webpacka to 3-etapowy proces
W pliku webpack.config.js dodaj
źródło
Nie możesz Musisz przekonwertować go na CommonJS za pomocą
babel
lubesm
.https://github.com/webpack/webpack-cli/issues/282
Ale możesz biegać
webpack -r esm @babel/register
źródło