Bagaimana cara menggunakan ES6 di webpack.config? Suka repo ini https://github.com/kriasoft/react-starter-kit ?
Misalnya:
menggunakan ini
import webpack from 'webpack';
dari pada
var webpack = require('webpack');
Ini merupakan rasa ingin tahu daripada kebutuhan.
which webpack
"Jawaban:
Coba beri nama konfigurasi Anda sebagai
webpack.config.babel.js
. Anda harus sudah mendaftar-babel dalam proyek ini. Contoh di react-router-bootstrap .Webpack bergantung pada interpretasi internal untuk membuat pekerjaan ini.
sumber
npm run
script ini:webpack --config webpack.config.babel.js
.--config
.babel-loader
modul ini juga diperlukanecho '{ "presets": ["es2015"] }' > .babelrc
Sebagai alternatif dari apa yang disarankan @bebraw, Anda dapat membuat skrip otomatisasi JavaScript dengan sintaks ES6 +:
Dan jalankan dengan babel:
PS : Memanggil webpack melalui JavaScript API mungkin merupakan pendekatan yang lebih baik (daripada dengan memanggilnya melalui baris perintah) ketika Anda perlu menerapkan langkah-langkah membangun yang lebih kompleks. Misalnya setelah bundel sisi server siap, mulai server aplikasi Node.js, dan tepat setelah server Node.js dimulai, luncurkan server dev BrowserSync.
Lihat juga:
package.json/scripts
,tools/bundle.js
,tools/webpack.config.js
)run.js
,webpack.config.js
,node run
)sumber
Pendekatan lain adalah untuk memiliki script NPM seperti ini:
"webpack": "babel-node ./node_modules/webpack/bin/webpack"
, dan menjalankannya seperti:npm run webpack
.sumber
babel-node ./node_modules/webpack/bin/webpack --config custom-webpack.config
Saya punya masalah dalam menjalankan solusi @ Juho dengan Webpack 2. Dokumen migrasi Webpack menyarankan Anda untuk beralih dari penguraian modul babel:
Sayangnya, ini bertentangan dengan fungsi register babel otomatis. Menghapus
dari konfigurasi babel membuat semuanya berjalan kembali. Namun, ini akan menghasilkan pemecahan goncangan pohon, sehingga solusi lengkap akan melibatkan menimpa preset dalam opsi loader :
Edit , 13 November 2017; cuplikan konfigurasi webpack diperbarui ke Webpack 3 (terima kasih kepada @ x-yuri). Tua, cuplikan Webpack 2:
sumber
module:{rules: [{test: /\.js$/, include: path.resolve('src'), loader: 'babel-loader', options: {babelrc: false, presets: [['env', {modules: false}]]}}]}
( intisari ).-loader
akhiran tidak lagi opsional. Cobalah untuk menghindariexclude
dan memilihinclude
. String di sertakan / kecualikan hanya berfungsi jika jalur absolut.query
diubah namanya menjadioptions
.{modules: false}
di.babelrc
dapat menggunakanimport
's diwebpack.config.babel.js
.-loader
akhiran Webpack 4 perlu ditambahkan kembali webpack.js.org/migrate/3/…Ini benar-benar mudah, tetapi bagi saya tidak ada jawaban yang jelas, jadi jika orang lain bingung seperti saya:
Cukup tambahkan
.babel
ke bagian nama file Anda sebelum ekstensi (dengan asumsi Anda milikibabel-register
menginstal sebagai dependensi).Contoh:
sumber
require
. Aneh bukan?Inilah yang berhasil bagi saya menggunakan webpack 4:
Dalam
package.json
:Anda dapat dengan jelas melihat bagaimana setiap ketergantungan digunakan, jadi tidak ada kejutan di sana.
Catatan Saya menggunakan
webpack-serve
--require , tetapi jika Anda ingin menggunakanwebpack
perintah, ganti denganwebpack --config-register
. Dalam kedua kasus tersebut,@babel/register
diperlukan untuk membuat ini berfungsi.Dan itu dia!
yarn dev
Dan Anda dapat menggunakannya
es6
di konfigurasi!Untuk
webpack-dev-server
, gunakan--config-register
opsi yang sama denganwebpack
perintahCATATAN:
TIDAK perlu mengubah nama file konfigurasi menjadi
webpack.config.babel.js
(seperti yang disarankan oleh jawaban yang diterima).webpack.config.js
akan bekerja dengan baik.sumber
--config-register
opsi. Juga repo untukwebpack-serve
dipindahkan ke sini: github.com/shellscape/webpack-servewebpack --config-register @babel/register --config webpack/development.config.js
Saya harus secara spesifik --config karena konfigurasi webpack saya ada dalam folder. Terima kasih!Satu lagi cara adalah dengan menggunakan argumen argument untuk node:
node -r babel-register ./node_modules/webpack/bin/webpack
Menemukan cara ini dalam pelat reaksi elektron , lihat,
build-main
danbuild-renderer
skrip.sumber
Konfigurasi untuk Babel 7 & Webpack 4
package.json
.babelrc
webpack.config.babel.js
sumber
Ganti nama
webpack.config.js
menjadiwebpack.config.babel.js
.Kemudian di .babelrc:
{"presets": ["es2015"]}
Namun, jika Anda ingin menggunakan konfigurasi babel yang berbeda untuk babel-cli, .babelrc Anda mungkin terlihat seperti ini:
Dan di package.json:
Itu bodoh tapi
{"modules": false}
akan merusak webpack jika Anda tidak menggunakan env yang berbeda.Untuk info lebih lanjut tentang .babelrc, periksa dokumen resmi .
sumber
Untuk TypeScript : langsung dari https://webpack.js.org/configuration/configuration-languages/
kemudian lanjutkan menulis, misalnya: webpack.config.ts Anda
Periksa tautan untuk perincian lebih lanjut di mana Anda dapat menggunakan plugin untuk memiliki file tsconfig terpisah hanya untuk konfigurasi webpack jika Anda tidak menargetkan commonjs (yang merupakan req untuk ini berfungsi karena bergantung pada ts-node).
sumber
Tidak punya cukup perwakilan untuk berkomentar, tapi saya ingin menambahkan untuk setiap pengguna TypeScript di luar sana solusi yang mirip dengan @Sandrik di atas
Saya memiliki dua skrip yang saya gunakan menunjuk ke konfigurasi webpack (file JS) yang berisi sintaks ES6.
"start-dev": "./node_modules/.bin/ts-node ./node_modules/webpack-dev-server/bin/webpack-dev-server.js --config ./webpack/webpack.config.dev.js"
dan
"build": "./node_modules/.bin/ts-node ./node_modules/webpack/bin/webpack.js --config webpack/webpack.config.js"
sumber
Pendekatan terbaik saya bersama dengan skrip npm adalah
dan konfigurasikan sisa skrip sesuai kebutuhan Anda untuk Babel
sumber
Setelah banyak dokumen ...
Cukup instal es2015 preset (bukan env !!!) dan tambahkan ke
Ganti nama
webpack.config.js
untukwebpack.config.babel.js
sumber
Menggunakan Webpack 4 dan Babel 7
Untuk menyiapkan file konfigurasi webpack untuk menggunakan ES2015 diperlukan Babel:
Instal dependensi dev:
Buat
.babelrc
file:Buat konfigurasi Webpack Anda,
webpack.config.babel.js
:Buat skrip Anda di
package.json
:Jalankan
npm run build
dannpm start
.Konfigurasi webpack didasarkan pada proyek sampel dengan struktur direktori berikut:
Contoh proyek: Bahasa Konfigurasi Webpack Menggunakan Babel
sumber
Menambahkan es6 ke webpack adalah proses 3 langkah
Di webpack.config.js tambahkan
sumber
Kamu tidak bisa Anda harus mengonversinya menjadi CommonJS, baik dengan
babel
atauesm
.https://github.com/webpack/webpack-cli/issues/282
Tapi kamu bisa lari
webpack -r esm @babel/register
sumber