Hello, world 的なコードを書いて、 Babel を試してみる。
Babel とは何か
Babel は、次世代 JavaScript 仕様である ECMAScript 6 で書かれたコードを、現行の Web ブラウザなどの JavaScript 処理系で動くコードに変換してくれるツール。
Babel is a JavaScript compiler.
Use next generation JavaScript, today.
Babel · The compiler for writing next generation JavaScript
ECMAScript 2015 (第 6 版) は、ECMAScript 言語標準仕様の現行バージョンです。一般的に "ES6" として参照され、Firefox や他の Mozilla アプリケーションで使用されているエンジンの SpiderMonkey における JavaScript 実装のための標準仕様を定義しています。
Mozilla における ECMAScript 6 のサポート - JavaScript | MDN
Babel のインストールには Node.js (npm) が必要
Babel のインストールには Node.js (というか npm) が必要なので、事前にインストールしておく。
Mac なら Homebrew や nodebrew を使うのが便利。
-
参考:
- [ヅ] Node.js のバージョンを nodebrew で管理する (with Mac OS X + Homebrew) (2015-03-13)
- [ヅ] Debian に nodebrew をインストールして Node.js を使う (2015-05-02)
- [ヅ] Node.js で hello, world (2015-02-23)
Babel のインストール
コマンドラインでシンプルに試せるように、 Using Babel · Babel を参考にインストールする。
npm で Babel をインストールする。
$ npm install -g babel
$ which babel
/Users/alice/.nodebrew/current/bin/babel
$ babel --version
5.8.23 (babel-core 5.8.25)
1つのファイルに JavaScript のコードを書いて試す
1つだけのファイルに書く、シンプルなサンプル。
Hello クラスを書いて、クラスの print メソッドを呼び出す。
$ cat app.js
class Hello {
constructor(name) {
this.name = name;
}
print() {
console.log("Hello, " + name);
}
}
var name = "Alice";
var hello = new Hello(name);
hello.print();
Babel で変換。
$ babel app.js -o dst.js
Babel コマンドラインの公式ドキュメントはこちら。
⇒ CLI · Babel
変換された js ファイルを Node.js で実行。
$ node dst.js
Hello, Alice
複数のファイルに JavaScript のコードを書いて試す
src ディレクトリを作って、そこに複数の *.js ファイルを置く。
Hello クラスを書く Hello.js ファイル。
$ cat src/Hello.js
class Hello {
constructor(name) {
this.name = name;
}
print() {
console.log("Hello, " + name);
}
}
Hello クラスを使う、 main.js ファイル。
$ cat src/main.js
var name = "Alice";
var hello = new Hello(name);
hello.print();
ソースコードの置いてあるディレクトリを指定して、 Babel を実行。
$ babel ./src -o dst.js
Node.js で、変換された js ファイルを実行する。
$ node dst.js
Hello, Alice
なぜか、 import や export を書いていないのに動いてしまうのが気になるけど、それはまた別途試すことにする。
import, export 関連の Babel 公式ドキュメント
⇒ Modules · Babel
- ref.
- Babel · The compiler for writing next generation JavaScript
- Babelを使って次期JavaScript、ES6を体験しよう : アシアルブログ
- フロントエンドでもES6構文使ってみる【webpack+babel-loader(旧6to5-loader)】 - yutaponのブログ
- Class構文が実装された - JS.next
- Rubyist Magazine - 2015 年の JavaScript と babel の話
tags: babel javascript nodejs
Posted by NI-Lab. (@nilab)