我正在尝试使用Babel设置webpack来编译React文件。 Webpack配置是在带有Webpack扩展名的VSCode中自动生成的。我尝试在“预设”部分添加“ @ babel / preset-react”,但是它不起作用,并且出现此错误:
模块解析失败:意外令牌(11:16) 您可能需要适当的加载程序来处理此文件类型。
似乎Webpack忽略了“ @ babel / preset-react”?配置如下。
const path = require('path');
module.exports = {
mode: 'development',
entry: path.join(__dirname, 'index.js'),
watch: true,
output: {
path: __dirname + '/dist',
publicPath: '/dist/',
filename: "bundle.js",
chunkFilename: '[name].js'
},
module: {
rules: [{
test: /.jsx?$/,
include: [
path.resolve(__dirname, 'app')
],
exclude: [
path.resolve(__dirname, 'node_modules')
],
loader: 'babel-loader',
query: {
presets: [
["@babel/env", {
"targets": {
"browsers": "last 2 chrome versions"
}
}],
"@babel/preset-react"
]
}
}]
},
resolve: {
extensions: ['.json', '.js', '.jsx']
},
devtool: 'source-map',
devServer: {
contentBase: path.join('/dist/'),
inline: true,
host: '0.0.0.0',
port: 8080,
}
};
谢谢。
答案 0 :(得分:0)
加载器选项在最新版本的Webpack的options
属性中给出,而不是query
。
您也不需要include
和exclude
属性。 exclude
就足够了。
{
test: /.jsx?$/,
exclude: /node_modules/,
loader: "babel-loader",
options: {
presets: [
[
"@babel/env",
{
targets: {
browsers: "last 2 chrome versions"
}
}
],
"@babel/preset-react"
]
}
}