babel-nodeでbabel pulginsを使うには.babelrcを設定する
目的
ES2015で書いて、かつpower-assertを使ったソースコードをbabel-nodeで動かす。
そのために、babel-nodeにbabel-plugin-espowerをプラグインとして指定したい。
結論
.babelrcにpluginsを設定します。
{
"plugins": [
"babel-plugin-espower"
]
}
背景
テストコードはmochaのcompilersオプションでespower-babelを指定すれば動かせます。
mocha --compilers js:espower-babel/guess test"
プロダクトコードはbabelのplugisオプションを使うと動くソースコードを作成できます。
babel --plugins babel-plugin-espower test.js
しかし、babel-nodeにはpluginsオプションがありません。
babel-node --plugins babel-plugin-espower
は動きません。
error: unknown option `--plugins'
が出力されます。
babel-nodeが使えれば、babelで毎回トランスパイルしなくてもよくなります。試しに動かすのが楽になります。
nodemonと組み合わせた、ソースコードの変更監視もできます。
babel-nodeの挙動の確認
試しにbabel-nodeの引数を増やして
babel-node --plugins babel-plugin-espower hoge.js
を実行すると
module.js:338
throw err;
^
Error: Cannot find module '/Users/shigerunakajima/syamo/babel-plugin-espower'
at Function.Module._resolveFilename (module.js:336:15)
at Function.Module._load (module.js:278:25)
at Function.Module.runMain (module.js:501:10)
at Object.<anonymous> (/usr/local/lib/node_modules/babel/lib/_babel-node.js:144:25)
at Module._compile (module.js:460:26)
at Object.Module._extensions..js (module.js:478:10)
at Module.load (module.js:355:32)
at Function.Module._load (module.js:310:12)
at Function.Module.runMain (module.js:501:10)
at startup (node.js:129:16)
node_modules配下を探してくれません。これは
babel-node babel-plugin-espower
と同じ挙動です。エラーメッセージ通りに、plugins
オプションは無視されます。
.babelrcの検証
次のソースコードで検証します。
import assert from 'power-assert'
let a = false
assert(a, 'a is not true.')
.babelrcなし
npm install power-assert
babel-node sapmle.js
出力結果
assert.js:86
throw new assert.AssertionError({
^
AssertionError: a is not true.
at decoratedAssert (/Users/shigerunakajima/syamo/node_modules/power-assert/node_modules/empower/lib/decorate.js:44:25)
at powerAssert (/Users/shigerunakajima/syamo/node_modules/power-assert/node_modules/empower/index.js:58:32)
at Object.<anonymous> (/Users/shigerunakajima/syamo/test.js:5:1)
at Module._compile (module.js:460:26)
at normalLoader (/usr/local/lib/node_modules/babel/node_modules/babel-core/lib/api/register/node.js:199:5)
at Object.require.extensions.(anonymous function) [as .js] (/usr/local/lib/node_modules/babel/node_modules/babel-core/lib/api/register/node.js:216:7)
at Module.load (module.js:355:32)
at Function.Module._load (module.js:310:12)
at Function.Module.runMain (module.js:501:10)
at Object.<anonymous> (/usr/local/lib/node_modules/babel/lib/_babel-node.js:144:25)
assertとしては動きますが、power-assertの詳細表示はされません。
.babelrcあり
.babelrcでbabel-plugin-espowerを指定します。
npm install power-assert babel-plugin-espower
babel-node sapmle.js
出力結果
/Users/shigerunakajima/syamo/node_modules/power-assert/node_modules/empower/lib/decorator.js:66
throw this.errorToRethrow(e, message, context);
^
AssertionError: a is not true. # test.js:5
assert(a, 'a is not true.')
|
false
at decoratedAssert (/Users/shigerunakajima/syamo/node_modules/power-assert/node_modules/empower/lib/decorate.js:42:30)
at powerAssert (/Users/shigerunakajima/syamo/node_modules/power-assert/node_modules/empower/index.js:58:32)
at Object.<anonymous> (/Users/shigerunakajima/syamo/test.js:5:1)
at Module._compile (module.js:460:26)
at normalLoader (/usr/local/lib/node_modules/babel/node_modules/babel-core/lib/api/register/node.js:199:5)
at Object.require.extensions.(anonymous function) [as .js] (/usr/local/lib/node_modules/babel/node_modules/babel-core/lib/api/register/node.js:216:7)
at Module.load (module.js:355:32)
at Function.Module._load (module.js:310:12)
at Function.Module.runMain (module.js:501:10)
at Object.<anonymous> (/usr/local/lib/node_modules/babel/lib/_babel-node.js:144:25)
パチパチ
Author And Source
この問題について(babel-nodeでbabel pulginsを使うには.babelrcを設定する), 我々は、より多くの情報をここで見つけました https://qiita.com/ledsun/items/e6a5b994e3ece89e81ca著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .