实际上,babel-loader 在 Webpack 配置中默认并不包含 exclude 和 include 选项的默认值,通常,为了优化构建性能,开发者会显式地设置 exclude 和 include 选项,以便 babel-loader 只处理必要的文件。
src/index.js
import $ from 'jquery'
$(document).ready(() => {
$('body').css({
width: '100%',
height: '100%',
'background-color': 'red'
})
})
优化前
webpack.config.js
const config = {
entry: './src/index.js',
output: {
filename: 'main.js'
},
mode: 'development',
module: {
rules: [
{
test: /\.js$/, // 使用正则匹配以.js结尾的文件
use: {
loader: 'babel-loader', // 使用babel-loader
options: {
// ... Babel的配置选项 ...
},
},
},
],
}
}
module.exports = config;
优化后
webpack.config.js
const config = {
entry: './src/index.js',
output: {
filename: 'main.js'
},
mode: 'development',
module: {
rules: [
{
test: /\.js$/, // 使用正则匹配以.js结尾的文件
exclude: /node_modules/, // 排除node_modules目录中的文件
include: /src/, // 只包括src目录中的文件
use: {
loader: 'babel-loader', // 使用babel-loader
options: {
// ... Babel的配置选项 ...
},
},
},
],
}
}
module.exports = config;
可以看到配置后节省了1184-814=340ms