Babelで最新のECMAScriptからNode.jsへのトランスパイル(アプリ、npm版)
ライブラリではなく、実行形式の場合
基本となる package.json を作成する。
$ npm init
$ npm install --save-dev @babel/core @babel/cli
ソースディレクトリを src
出力ディレクトリを dist
とする。
とりあえず、ソースとして src/index.js を追加
code:src/index.js
console.log("Hello, world!");
package.json の main を dist/index.js とする。
package.json の scripts に build コマンド、start コマンドを追加
code:pack
"scripts": {
"build": "babel src --out-dir dist",
"start": "node dist/index.js",
$ npm run build
$ npm run start
rimraf を入れて、clean コマンドを追加
$ npm install --save-dev rimraf
code:package.json
"scripts": {
"clean": "rimraf dist/*",
Babel の設定
環境に合わせてビルドするために @babel/preset-env を追加。
$ npm install --save-dev @babel/preset-env
babel.config.json を作成
code:babel.config.json
{
}
対象を Node.js にするので、"targets": [ "node": "current" ] を追加する。("node": true も同義)
バージョンを指定したいなら、"current" の代わりにバージョンの数字文字列を入れる。
プラグインへのパラメータとして引き渡す都合上、階層が1つ余分に増やす必要があるので注意。
code:babel.config.json
{
"presets": [
[
"@babel/preset-env",
{
"targets": { "node": "current" }
}
]
]
}