# 使用Babel编译
TIP
为了更加灵活的配置使用Babel,cyb-cli自v1.4版本起放弃高度封装的策略,将babel编译移入项目中独立配置。
如果使用cyb init
创建项目,以下babel编译的相关配置会自动创建,无需手动配置。
# 使用Babel7
1、安装依赖包
npm install --save-dev @babel/core @babel/preset-env @babel/plugin-transform-runtime @babel/plugin-syntax-dynamic-import @babel/plugin-proposal-decorators @babel/plugin-proposal-class-properties
// webpack.config.js
module.exports = {
module: {
rules: [{
test: /\.js$/,
exclude: /(node_modules|bower_components)/,
use: {
loader: 'babel-loader',
options: {
babelrc: true
}
}
}]
}
}
3、配置.babelrc
// .babelrc
{
"presets": [
["@babel/preset-env",
{
"modules": false,
"targets": {
"browsers": ["> 1%", "last 2 versions", "not ie <= 9"]
}
}
]
],
"plugins": [
"@babel/plugin-syntax-dynamic-import",
["@babel/plugin-proposal-decorators", {
"legacy": true
}],
["@babel/plugin-proposal-class-properties", {
"loose": true
}],
"@babel/plugin-transform-runtime"
],
"env":
{
"development":
{
"presets": [],
"plugins": []
},
"production":
{
"presets": [],
"plugins": []
}
}
}
# 使用Babel6 (不推荐)
1、安装依赖包
npm install --save-dev babel-core babel-preset-env babel-loader@7 babel-runtime babel-plugin-transform-runtime babel-preset-stage-0 babel-polyfill
2、在webpack.config.js
配置babel-loader
// webpack.config.js
module.exports = {
module: {
rules: [{
test: /\.js$/,
exclude: /(node_modules|bower_components)/,
use: {
loader: 'babel-loader',
options: {
babelrc: true
}
}
}]
}
}
3、配置.babelrc
// .babelrc
{
"presets": [
["env",
{
"modules": false,
"targets":
{
"browsers": ["> 1%", "last 2 versions", "not ie <= 8"]
}
}],
"stage-0"
],
"plugins": ["transform-runtime"],
"env":
{
"development":
{
"presets": [],
"plugins": []
},
"production":
{
"presets": [],
"plugins": []
}
}
}