核心提示:Babel简单学习笔记:ES6出来很久了,项目中没有用到,我也一直没仔细去看。一直抱着先把ES5打扎实再说,然后时间在不知不觉中过去了。我还是了解地太少太少了。终于,开始踏出接触新知识的第一步了。Ba...
Babel简单学习笔记:ES6出来很久了,项目中没有用到,我也一直没仔细去看。一直抱着先把ES5打扎实再说,然后时间在不知不觉中过去了。我还是了解地太少太少了。终于,开始踏出接触新知识的第一步了。
Babel的作用就是将ES6代码转译成现代浏览器基本都支持的ES5代码。本文简单记录Babel的入门。
就是以自己的理解整理网上现有的一些资源教程,供自己参考。
安装
先把安装Babel命令行工具和预设置:
npm install --save-dev babel-cli babel-preset-env
可能的转码规则:
# ES2015转码规则 $ npm install --save-dev babel-preset-es2015 # react转码规则 $ npm install --save-dev babel-preset-react # ES7不同阶段语法提案的转码规则(共有4个阶段),选装一个 $ npm install --save-dev babel-preset-stage-0 $ npm install --save-dev babel-preset-stage-1 $ npm install --save-dev babel-preset-stage-2 $ npm install --save-dev babel-preset-stage-3
其他可能用到的npm包:
"babel-core" // Babel的API代码 "babel-node" // 直接运行ES6脚本 "babel-loader" // 在webpack中使用的加载器 "babel-register" // 自动对require的.js .jsx .es .es6进行转码 "babel-polyfill" // 支持ES6的一些新特性,比如Generator,Promise "babel-plugin-transform-runtime" // 运行时按需加载polyfill
配置
在项目根目录下创建一个.babelrc文件,配置相关属性如下。
{ "presets": [ //预设置的语法 "es2015", "stage-2" ], "plugins": ["transform-runtime"], //插件 "comments": false, //除掉脚本中的注释 }
也可以在package.json文件中配置:
{ "name": "my-package", "version": "1.0.0", "babel": { // babel相关属性配置 } }
使用
利用npm script的形式,在package.json中编写脚本:
{ // ... "scripts": { "build": "babel src -d lib" }, }
运行时执行以下命令:
npm run build
Babel命令行的语法如下:
# 转码结果输出到标准输出 $ babel example.js # 转码结果写入一个文件 # --out-file 或 -o 参数指定输出文件 $ babel example.js --out-file compiled.js # 或者 $ babel example.js -o compiled.js # 整个目录转码 # --out-dir 或 -d 参数指定输出目录 $ babel src --out-dir lib # 或者 $ babel src -d lib # -s 参数生成source map文件 $ babel src -d lib -s
这样就可以简单地运行Babel了。