背景:如何把es6或者更高级的语法转换成es5,需要用babel,如果不进行转换,打包的时候依然会是es6,浏览器不能识别。
1.将开发模式设置为development模式
2.安装babel-loader和@babel/core,@babel/core,@babel?preset-env
3.在module中进行设置
module:{//模块
rules:[
{test:/\.js$/,
use:{
loader:'babel-loader',
options:{ //用babel-loader需要把es6转换成es5
presets:[
'@babel/preset-env'
]
}
}}
}
}
2.es6高级语法设置
1.对于下图中所示的类语法,应该使用 “@babel/plugin-proposal-class-properties” 这个插件
//index.js
class A{
a=1;
}
“@babel/plugin-proposal-class-properties” 具体用法
//webpack.config.js
{test:/\.js$/,
use:{
loader:'babel-loader',
options:{ //用babel-loader需要把es6转换成es5
presets:[
'@babel/preset-env'
],
plugins:[
'@babel/plugin-proposal-class-properties'
]
}
}}
2.对于如下图所示的装饰性语法
在这里插入代码片
(1)安装插件 @babel/plugin-proposal-decorators
npm install --save-dev @babel/plugin-proposal-decorators
(2)设置
{test:/\.js$/,
use:{
loader:'babel-loader',
options:{ //用babel-loader需要把es6转换成es5
presets:[
'@babel/preset-env'
],
plugins:[
["@babel/plugin-proposal-decorators", { "legacy": true }],
["@babel/plugin-proposal-class-properties", { "loose" : true }]
]
}
}}