明示的な相対パス(../../../lib..
)なしでモジュール内の他のディレクトリを簡単に参照できますか?ノードモジュール内で「グローバル」変数を共有するにはどうすればよいでしょうか?
私はノードモジュールを作成しています。モジュールに再利用したいいくつかのグローバルなものがあります。
ほとんどの場合、モジュールのルートパスを 'グローバル'に設定したいので、多くの相対パスを使わずに簡単に他のソースを呼び出すことができます。../../
などです。それは混乱したコードを引き起こす可能性があり、プロジェクト構造が変更された場合、それを間違ったり間に合わせたりするのは簡単です。
だから私はオプションin that postと(例えばルート・パスを与えるモジュールなど - app-module-path、rootpath、rfrなど)物事のこれらの種類に対処するためのいくつかの他のライブラリをたくさん見てきたが、それらはすべてベースを参照してください。プロジェクト/アプリケーションであり、他の人が使用しているモジュールではありません。
グローバルを設定することは悪い考えです。環境変数もあまり良い考えではないことを理解しました。
そのことの良い習慣はありますか?たぶん私は見つけたり聞いたりしていないことがあります。
は、ここに私が探しているものを私は避けるようにしようとしているものの例だと、すべての
// avoid things like that:
// ./lib/something/forthat/doit.js
var config = require('../../../config/project/type1/config.js');
// ./config/project/type1/config.js
module.exports = {
msg: 'hi'
};
// find somethings like that:
// when the root path/require can be found in every location of the module
// and is relative to my app and not the app using my module.
// ./lib/something/forthat/doit.js
var config = require(rootPath + 'config/project/type1/config.js');
// OR
var config = rootRequire('config/project/type1/config.js');
// OR anything else
// ./config/project/type1/config.js
module.exports = {
msg: 'hi'
};
あなたは混乱/乱雑さについて正しいです、それは私が意味するもののようなものです。私はあなたの提案を理解していませんでした。あなたが何を意味するのか少し例を挙げてもらえますか?それは私が明確にすることを意味している:https://jsfiddle.net/fzhqf4of/ – arieljannai