browserifyは「事前にモジュールを探して結合する」という仕様上、requireのパスが動的に変わる場合にその解決ができません。
例えば、以下のコードはコンパイルは通りますが、ブラウザ上で実行した際に "Cannot find module './path/to/foo'" というエラーになります。
var fooPath = './path/to/foo';
require(fooPath);
なんで、これを読み込めるようにしたい場合は、対象のモジュールを
またはこうする
// 実行する必要はない
if (false) {
require('./path/to/foo');
}
var fooPath = './path/to/foo';
require(fooPath);
参考