Saya mencoba menggunakan Webpack dengan Babel untuk mengkompilasi aset ES6, tetapi saya mendapatkan pesan kesalahan berikut:
You may need an appropriate loader to handle this file type.
| import React from 'react';
| /*
| import { render } from 'react-dom'
Inilah tampilan konfigurasi Webpack saya:
var path = require('path');
var webpack = require('webpack');
module.exports = {
entry: './index',
output: {
path: path.join(__dirname, 'dist'),
filename: 'bundle.js',
publicPath: '/dist/'
},
module: {
loaders: [
{
test: /\.jsx?$/,
loader: 'babel-loader',
exclude: /node_modules/
}
]
}
}
Berikut adalah langkah middleware yang menggunakan Webpack:
var webpack = require('webpack');
var webpackDevMiddleware = require('webpack-dev-middleware');
var config = require('./webpack.config');
var express = require('express');
var app = express();
var port = 3000;
var compiler = webpack(config);
app.use(webpackDevMiddleware(compiler, {
noInfo: true,
publicPath: config.output.publicPath
}));
app.get('/', function(req, res) {
res.sendFile(__dirname + '/index.html');
});
app.listen(port, function(err) {
console.log('Server started on http://localhost:%s', port);
});
Semua file index.js saya lakukan adalah mengimpor reaksi, tetapi sepertinya 'babel-loader' tidak berfungsi.
Saya menggunakan 'babel-loader' 6.0.0.
Jawaban:
Anda perlu menginstal
es2015
preset:lalu konfigurasikan
babel-loader
:sumber
Pastikan Anda telah menginstal babel preset es2015 .
Contoh devDependencies package.json adalah:
Sekarang konfigurasikan babel-loader di konfigurasi webpack Anda:
tambahkan file .babelrc ke root proyek Anda di mana modul node berada:
Info lebih lanjut:
babeljs.io - menggunakan babel dengan webpack
babeljs.io - dokumen tentang .babelrc
react-webpack-cookbook - konfigurasikan bereaksi dengan webpack
sumber
Jika Anda menggunakan Webpack> 3 maka Anda hanya perlu menginstal
babel-preset-env
, karena akun preset ini untuk es2015, es2016 dan es2017.Ini mengambil konfigurasinya dari saya
.babelrc
file :sumber
Karena pembaruan dan perubahan dari waktu ke waktu, kompatibilitas versi mulai menyebabkan masalah dengan konfigurasi.
Webpack.config.js Anda harus seperti ini, Anda juga dapat mengonfigurasi sesuka Anda.
Hal lain yang perlu diperhatikan adalah perubahan args, Anda harus membaca dokumentasi babel https://babeljs.io/docs/en/presets
NB: Anda harus memastikan bahwa @ babel / preset-env & @ babel / preset-react di atas telah diinstal di dependensi package.json Anda
sumber
@babel/preset-react
tetap untuk saya.PEMBARUAN TIM BABEL:
Kami sangat senang Anda mencoba menggunakan sintaks ES2015, tetapi alih-alih melanjutkan preset tahunan, tim merekomendasikan penggunaan babel-preset-env. Secara default, ia memiliki perilaku yang sama seperti preset sebelumnya untuk mengompilasi ES2015 + ke ES5
Jika Anda menggunakan Babel versi 7, Anda perlu menjalankan npm install @ babel / preset-env dan memiliki "presets": ["@ babel / preset-env"] dalam
.babelrc
konfigurasi Anda .Ini akan mengkompilasi semua fitur terbaru ke es5 kode transpiled:
Prasyarat :
Langkah-1:: npm install --save-dev @ babel / preset-env
Langkah-2: Untuk mengkompilasi
JSX
kode ke es5, babel menyediakan@babel/preset-react
paket untuk mengonversijsx
file ekstensi react ke kode yang dapat dimengerti browser asli.Langkah-3: npm install --save-dev @ babel / preset-react
Langkah-4: buat
.babelrc
file di dalam jalur root proyek Anda jikawebpack.config.js
ada.Langkah-5: webpack.config.js
sumber
Saat menggunakan Ketikan:
Dalam kasus saya, saya menggunakan sintaks yang lebih baru dari webpack v3.11 dari halaman dokumentasi mereka, saya baru saja menyalin konfigurasi pemuat css dan gaya dari situs web mereka. Kode yang dikomentari (API lebih baru) menyebabkan kesalahan ini, lihat di bawah.
Cara yang benar adalah dengan mengatakan ini:
dalam larik properti loader.
sumber
Yang ini melempar saya untuk berputar. Angular 7, Webpack Saya menemukan artikel ini jadi saya ingin memberikan kredit ke Artikel https://www.edc4it.com/blog/web/helloworld-angular2.html
Apa solusinya adalah: // pada file komponen Anda. gunakan template karena webpack akan memperlakukannya sebagai template teks: require ('./ process.component.html')
agar karma menafsirkannya npm install add html-loader --save-dev {test: /.html$/, gunakan: "html-loader"},
Semoga ini bisa membantu seseorang
sumber