2016-03-24 3 views
0

いくつかのノードJSライブラリ(例えばdebug)このパターンを使用します。ES2015 `require()()`の `import`の代わりに?</p> <pre><code>var debug = require('debug')('http'); </code></pre><p>これは、直接呼び出される関数の必要が基本的に:文を必要と

私の質問:ES2015 importステートメントを使用して同様の構成がありますか?

commonjsからes2015の構文に変換する場合、どのようにこのようなコードを翻訳しますか?

答えて

1

require(debug)を使用することができます値を返すので、そのパターンにのみ動作しますすぐに。

var debug = require('debug')('http'); 

importは、それが値として解決されないという意味でifのようなビットです。 ifと同じ機能を実行し、その値として解決?オペレータと

var d = if(a) { b } else { c }; // unexpected token 
var debug = import debug from 'debug'; // unexpected token 

require共有セマンティクス。

var d = a ? b : c; 
var debug = require('debug'); 

唯一の選択肢は、ステートメントを分割することです。

import _debug from 'debug'; 
var debug = _debug('http'); 
+0

すばらしい比較感謝! –

1

There is no such shorthand in ES2015

あなただけの二つの部分にコードを分割する必要があります:

import _debug from 'debug'; 
const debug = _debug('http'); 

たため、輸出は次のようになります。

export default function { ... } 
+0

ありがとうございます! –

関連する問題