原谅我已经入坑这么久才写这种文章,最近心血来潮写es5写的不想写了,而且es6已经出了这么久了也一直没有什么机会经常用,所有打算以后都用es6 多上手感受一下,说不定哪天全部兼容了自己还不会!现在进入正题:我也是参照网上的文档来做的,如有雷同纯属意外。
安装
先确保电脑上安装了node,npm依赖
node -v 检查node版本 npm -v 检查npm版本
电脑需要用到webpack 也需要安装
webpack -v 检查webpack版本
上面的都准备完成之后开始安装babel-cli 全局安装
npm install babel-cli -g
因为我之前误删了好多包还有webapck版本不符, 弄了好久安装了好多遍才成功
- 安装转换包babel-preset-es2015 还需要本地安装babel-cli
npm install —save-dev babel-cli babel-preset-es2015
配置
在当前工作目录新建文件 .babelrc
,注意不是后缀 是文件名 文件一定要调到显示文件扩展名
{
"presets": [
"es2015" //添加需要转换的依赖
],
"plugins": []
}
使用
新建 a.js
let [a, b] = [1, 2]
let mes = () => () => a = 1;
let promise = new Promise((resolve, reject) => {
})
class Scroll {
constructor() {
this.a = 1;
this.b = 2
}
showA() {
console.log(this.a)
}
}
终端执行
babel -o a.js b.js
生成文件b.js
"use strict";
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
var a = 1,
b = 2;
var mes = function mes() {
return function () {
return a = 1;
};
};
var promise = new Promise(function (resolve, reject) {});
var Scroll = function () {
function Scroll() {
_classCallCheck(this, Scroll);
this.a = 1;
this.b = 2;
}
_createClass(Scroll, [{
key: "showA",
value: function showA() {
console.log(this.a);
}
}]);
return Scroll;
}();
常用命令
-o, —out-file //输出目标文件
babel 编辑文件 -o 生成文件
-d, —out-dir 输出文件夹下的所有文件对应的文件到目标目录
babel 当前文件夹 -d 生成文件夹
-w, —watch 监听文件修改自动生成目标内容
-s 参数生成source map 文件
babel src -d lib -s
自动监听文件修改
执行 babel -w [in] [out]
或者在package.json中修改scripts
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"start": "babel -w _js --out-dir js"
},
执行 npm start