npm i @babel/core @babel/preset-env babel-loader -D
npm i core-js -S
1、babel-loader(开发时依赖)
2、@babel/core(开发时依赖)
3、@babel/preset-env(开发时依赖)
4、core-js(运行时依赖) 为什么使用core-js 而不是 polyfill 点击查看
5、如何使用core-js 与 preset-env 点击查看
6、如何使用core-js 与其他preset 点击查看
7、查看core-js的配置项 点击查看
// webpack.config.js
const ESLintPlugin = require('eslint-webpack-plugin');
module.exports = {
mode: "development",
entry: './src/index.js',
// devtool: 'inline-source-map',
devServer: {
contentBase: './dist',
compress: true,
open: false
},
output: {
publicPath: '/',
// 指定打包后输出的文件名
filename: 'js/app.[contenthash:10].js',
// 指定打包后输出的目录
path: path.resolve(__dirname, 'dist')
},
resolve: {
alias: {
# !!!!!!注意如果配置了此处 要安装步骤5的插件!!!!!!!! #
"@": path.resolve(__dirname, 'src')
}
},
module: {
rules: [
{
test: /\.js$/,
exclude: /node_modules/,
use: {
loader: 'babel-loader',
options: {
presets: [
[
'@babel/preset-env',
{
// 需要兼容到以下浏览器的什么版本
"targets": {
"ie": 7,
"edge": "17",
"firefox": "60",
"chrome": "67",
"safari": "11.1",
},
// 按需加载
"useBuiltIns": "usage",
// 指定core-js版本 看好了这个地方如果和你安装的包的版本不一样会报错
"corejs": "3.8.3",
}
]
]
}
}
}
]
},
plugins: [
#使用 配置项都可以在eslint - webpack - plugin的github上找到
new ESLintPlugin({
fix: true,
extensions: ['js', 'json', 'coffee'],
exclude: '/node_modules/'
}),
]
};