nodeのツールでbabelを使いたい場合、もちろんbabelrcを書く必要がありますが、面倒です。
また、presetsとpluginsの更新に時間を取られたくありません。
ので、自分でライブラリを公開するときはbabel-preset-zeroを用いて痛みを軽減しています。
yarn add --dev babel-cli babel-preset-zero
akameco/babel-preset-zero: babelrc for zero config
Usage
{
"presets": ["zero"]
}
How
babel-preset-zeroが何をしているのかと言えば、babelrcは普通にjsをかけるのでnpmの依存を解析したり、環境変数を見たりして使うpresetを自動的に判定します。
例えば、基本公開はnode v6以上で公開したいですが、test環境はで不要です。
なのでテストではcurrnetでビルドするようにします。
const envTargets = isTest ? { node: 'current' } : { node: '6' }
また、flow-binがある場合のみbabel-presets-flowが有効になりようにすることも可能です。
依存にreactがあればbabel-presets-reactを有効化等が指定なしで出来ます。
hasAnyDep('flow-bin') && require.resolve('babel-preset-flow'),
メリット
babel-preset-zeroを使う場合は、これだけ管理すればよくなり、管理が楽です。
まとめ
もしbabel-presets-zeroの設定に気に食わないところがあればPR歓迎です。また、自分でpresetsを自分で用意してもよいと思います。