Node.jsのモジュール機能

https://numb86-tech.hatenablog.com/entry/2016/07/20/202744
`exports`変数の内容がエクスポート対象。
`x = require(ファイルパス、またはパッケージ名)`でexportsがxに代入される。
ファイルの中身を実行してexportsを返す、というのがrequire()の挙動。ただしrequire()は、同じファイルに対しては1度しか実行されない。
exports変数はmodule.exportsで参照される場合もあるがこれは同じものを指す。

// parts.js
var value = '値';
var foo = 'foo';
exports.value = value;

// index.js
var parts = require('./parts.js');
console.log(parts.value);   // 値
console.log(parts.foo); // undefined



javascript仕様に従ったimport/export構文も一応サポートされているが、拡張子をmjsにしなければならなかったり、許可オプションをつけないと警告が出たりするので、2021年現在においても実用的でない。