実行可能なスクリプトが生成されます。スクリプトの実行の流れに関して、少し用語の定義をします。流れを「関数内の実行」と、以下では呼ぶことにします。生成されるサンプルは、循環があっても特に問題が無い場合です。'./isOdd';console.log(isEven(4));console.log(isEven(5));console.log(isOdd(6));console.log(isOdd(7));実行結果は次のようになります。isEven[Function]========truefalsefalsetrueまた、それぞれの子モジュールの内容は次のようになっているのですが、このように「関数内の実行」からのみの参照であれば問題はありません。なっている時はありますが、関数が実行される時には「中身が出来て」います。インポートの順序も、どちらでも構いません。生成されるサンプルは、問題がある循環の場合です。いう代入は、以下のような結果を得るために、どうしても必要)実行結果は次のようになります。}========各モジュールは次のようになっています。なっていて、先に示したようにmainのほうで補完してやっています(あれこれいじってみましたが、他に方法は無いようでした)。「上から下への実行」の途中で実際に参照ができる必要がある、現実的なコードの例としては、classのextendsでの親クラスの指定などがあります。ように外部から操作して循環を完成させないといけません。側のように、mainで(上位側で)インポートする順番に注意する必要があり、直接に参照している側を先にインポートしてやればうまくいきます。警告が来るので外しました。*2:ピリオドを忘れると、npmの、ディレクトリを遡る特性で変なことになる場合があります。