Browserify を使用して、大きな Node.js アプリケーションを 1 つのファイルにコンパイルしています (オプション--bare
と[ Express での--ignore-missing
トラブルを回避するため] を使用)。lib-cov
ディレクトリで利用可能なものに基づいてモジュールを動的にロードするコードがいくつかあります。
var fs = require('fs'),
path = require('path');
fs.readdirSync(__dirname).forEach(function (file) {
if (file !== 'index.js' && fs.statSync(path.join(__dirname, file)).isFile()) {
module.exports[file.substring(0, file.length-3)] = require(path.join(__dirname, file));
}
});
コンパイル済みファイルがロードされているディレクトリから任意のテキスト ファイルがロードされているアプリケーションで、奇妙なエラーが発生します。これは、パスが正しく設定されていないためであり、Browserify がrequire()
正しいファイルにアクセスできないためだと思います。このように動的にロードされます。
静的index.js
ファイルを作成する以外に、すぐに使用できる Browserify と互換性のあるモジュールのディレクトリを動的に要求する好ましい方法はありますか?