什么是 babel
- 安装
npm install -D babel-loader @babel/core @babel/preset-env
- 作用 把高版本语法转化低版本 (es6 转 es5 )
- 使用
@ babel / plugin-transform-runtime
- 安装
npm install --save-dev @babel/plugin-transform-runtime
- 作用 该 transform-runtime 变压器插件做了三两件事:
- @babel/runtime/regenerator 当您使用生成器/异步功能(可通过该 regenerator 选项切换)时自动需要。
- 可以 core-js 在必要时用于帮助程序,而不是假设用户会对其进行填充(可通过该 corejs 选项切换)
- 自动删除内嵌的 Babel 帮助程序并@babel/runtime/helpers 改为使用模块(可通过该 helpers 选项切换)。
- 这实际上是什么意思?基本上,你可以使用内置的插件,如 Promise,Set,Symbol,等,以及使用所有需要填充工具无缝连接,无需全球污染通天特点,使其非常适合于图书馆。
确保将其包括@babel/runtime 为依赖项。
- 使用
let path = require('path');
let HtmlWebpackPlugin = require("html-webpack-plugin")
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
const ESLintPlugin = require('eslint-webpack-plugin');
module.exports = {
mode: 'development',
entry: './src/index.js',
devServer:{
port:3000,
progress:true,
contentBase:"./dist"
},
output: {
filename: 'bundle.[hash:8].js',
path: path.resolve(__dirname, 'dist'),
},
plugins:[
new HtmlWebpackPlugin({
template:'./src/index.html',
filename:"index.html",
hash:true,
}),
new MiniCssExtractPlugin({
filename:'main.css'
}),
new ESLintPlugin()
],
module:{
rules:[
{
test:/\.css$/,
use:[MiniCssExtractPlugin.loader,'css-loader']
},
{
test:/\.js$/,
exclude:/node_modules/,
use:{
loader:'babel-loader',
options:{
presets:['@babel/preset-env'],
"plugins": [
["@babel/plugin-proposal-decorators", { "legacy": true }],
["@babel/plugin-proposal-class-properties", { "loose" : true }],
["@babel/plugin-transform-runtime"]
]
},
}
}
]
}
};