実際には、ロードされたモジュールをグローバル スコープで実行するように node-js を構成できることをどこかで見ましたが、今はその方法を見つけることができません。
なぜ私は尋ねているのですか?
サーバーとクライアントの両方で使用したい言語ユーティリティを定義するレガシー ファイルがいくつかありますが、これらのユーティリティの多くはグローバル スコープ関数として定義されています。たとえば、closure(fClosure)
、module(fModule)
などの関数があり、コードを読みやすく明確な方法で整理するだけです$sb(arg,arg,arg)
。また、文字列ビルダーである などのユーティリティもあります。
現在、これらのユーティリティは のようなファイルで定義されておりcore.js
、このファイルは最初の依存関係としてブラウザーに読み込まれ、問題はありません。
ただし、ルートでこのファイルを要求すると、拡張する場所で役立ちますが、Array.prototype
その中で定義されている関数は他のモジュールでは表示されません。(そして、汚染や他のライブラリとの衝突についての議論は避けてください)
CommonJS の仕様に従っていないことはわかっていますが、CommonJS の方法ですべてのコードを再編成することなく、このレガシー コードを活用しようとしています。
RequireJS とそれが提案する美しい AMD モデルについても見つけましたが、node.js 用に記述されたブラウザー コードで実行する方法についてのみ回答し、その逆については回答しません。
グローバル変数への割り当ては機能しません。これは、すべてのレガシー ライブラリを書き直さなければならないことを意味するためです。それらをグローバルスコープで実行し、それらを書き換えずに、そこで宣言したものをすべて残す方法を探しています。
それで、ノードにファイルを要求してグローバルスコープで実行するように依頼する方法はありますか?