ECMAScript 是一套规范,JavaScript 是实施了 ECMAScript 规范的一种语言。ES5 是这个规范的版本,也是现代浏览器普遍支持的一个版本,ES6 是这个规范的下一个版本,不过这个版本现在有个新名字叫 ES2015 ,也就是以后会使用年份去命名 ECMAScript 规范。
Babel 是一款 JavaScript 编译工作,比如它可以让你用新的标准去写 JavaScript 代码,然后 Babel 会把这些代码编译成现在的浏览器能懂的 JavaScript 。还有以后 React 也会用到 Babel 去编译它的 JSX 。
安装 Babel 命令行
确定你已经安装好了 npm ,然后打开命令行界面,Windows 用 Powershell,Mac 用终端,然后执行:
npm install -g babel
完成以后就可以使用 babel 命令行,创建一个 JS 文件叫 script.js,里面放点用 ES2015 标准写的代码:
'use strict'; let a = 'Hello World!';
进入到文件所在目录,然后执行:
babel script.js
会直接在命令行界面给你返回编译之后的结果:
'use strict'; var a = 'Hello World!';
你也可以直接把把编译成的结果保存成一个文件,像这样:
babel script.js --out-file script-compiled.js
script-compiled.js 就是编译之后的结果,里面的内容就是跟你刚才在命令行界面上看到的一样。
使用 --watch 选项,可以监视文件的变化,发生变化以后会自动去编译:
babel script.js --watch --out-file script-compiled.js
浏览器直接编译
进入到项目所在目录,然后使用 npm 去在项目本地安装一下 babel 。
npm install babel
在 babel-core 这个目录的下面有个 browser.js ,你需要把这个文件链接到你的网页上,看起来像这样:
<script src="https://ninghao.net/node_modules/babel/node_modules/babel-core/browser.js"></script>
然后你可以在需要使用 Babel 编译的脚本文件的 script 标签上添加一个 type="text/babel" ,像这样:
<script src="https://ninghao.net/script.js" type="text/babel"></script>
这种方法比较适合用在开发阶段,因为不需要去编译输出文件,效率会更高一些。
评论
不错!
9 年 3 个月 以前
为什么我安装的browser.js文件里面是空的?
9 年 3 周 以前
在安装好了babel的情况下,使用babel script.js 编译得到的文件与ES6写的源文件一模一样,也就是说babel没有工作。请问有什么可能性?
8 年 11 个月 以前
问题已解决,因为Node 4X,5X版本支持问题,在本地安装的时候,请使用
npm install babel-preset-es2015
在编译的时候请使用:
babel --presets es2015 script.js -o script-compiled.js
(我使用的是最新版本的babel)
8 年 11 个月 以前