原谅我已经入坑这么久才写这种文章,最近心血来潮写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
