webpack 配置 babel
根据 webpack 版本的不同,安装的 babel 依赖有些区别,下面的是 webpakc 4.2 及以上版本安装的依赖。 4.2 之前的是:babel-core、babel-preset-env
要配置 babel 首先需要安装 @babel/core,这是 babel 的核心编译包:
cnpm install --save-dev @babel.core
然后需要安装 babel-loader 来帮助我们加载使用 babel:
cnpm i --save-dev babel-loader
这时候,在 webpack.config.js 中 rules 的代码是这样的:
module:{
rules: [
{
test: /\.js$/,
use: {
loader: 'babel-loader'
},
exclude:path.resolve(__dirname,'/node_modules'),
include: path.join(__dirname, 'src_1')
}
]
}
上面的代码中, exclude 表示不想被 babel 处理的文件目录,include 表示需要被处理的目录,不加 include 的话应该就是会处理除 exclude 以外的其他目录。
然后,我们可以选择 babel 的解析标准,比如我们需要按照 ES6 的标准来,那么就需要装一个 babel-preset-es2015,若要按照 ES7 的标准,就需要按照 babel-preset-es2016。不过我们可以直接安装一个 @babel/preset-env ,它等价于 babel-preset-latest,可以编译所有新规范的代码:
cnpm install --save-dev @babel/preset-env
这下,我们的 webpack 中是这样的:
module:{
rules: [
{
test: /\.js$/,
use: {
loader: 'babel-loader',
options: {
presets: ['@babel/preset-env']
}
},
exclude:path.resolve(__dirname,'/node_modules'),
include: path.join(__dirname, 'src_1')
}
]
}
presets 中还有其他选项可以帮助我们兼容 js,可根据自己的需求来,具体可看:babel-preset-env
除了 webpack,我们还需要在工程目录下创建一个 .babelrc 文件,把关于 babel 的配置放进去:
{
"presets": ["@babel/preset-env"],
}
一般来说 babel 这样配置就差不多了,不过在 build 的时候项目里在类中的箭头函数处报了错,提示还需要一个插件 @babel/plugin-proposal-class-properties
因此按照提示安装:
cnpm i --save-dev @babel/plugin-proposal-class-properties
最后, package.json 就是这样的:
"devDependencies": {
"@babel/core": "^7.12.10",
"@babel/plugin-proposal-class-properties": "^7.12.1",
"@babel/preset-env": "^7.12.11",
"babel-loader": "^8.2.2"
}
然后还需要修改 .babelrc :
{
"presets": ["@babel/preset-env"],
"plugins": ["@babel/plugin-proposal-class-properties"]
}
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!