私はgruntビルドプロセス用のユーティリティモジュールをいくつかビルドしようとしています。どうやら私は、モジュールシステムがどのように機能するかについて混乱しているが、ここで私は(それは無関係ですので、機能ロジックを除外)したものである:だからノードのmodule.exportsが空のオブジェクトとして戻ってきます
var modifiers = require('./modifiers');
// later in file....
grunt.log.writeln(JSON.stringify(modifiers)); //outputs: {}
:呼び出しファイルから
var modifiers = {
task: function(grunt){
//logic...
}
}
var modify = function(grunt){
modifiers.task();
}
module.exports = {
modify: modify
};
そして、ログ呼び出しは空のオブジェクトを出力します。 modifiers.modifyを呼び出すと、エラーを与える:
Warning: modifiers.modify is not a function
は、私は完全に作品をmodule.exportsはどのように欠けているのですか?私は関数をエクスポートするために他のファイルで使用していますが、ここで私的な変数のセマンティクス全体が本当に必要です。
私はまた、他のものと一緒にオブジェクトを返す自己呼び出し関数にmodule.exportsを設定しようとしました。無駄になりました。修飾子オブジェクトを返すだけではどうすればよいですか?私はオブジェクトを返すことを望んでいるので、拡張可能である必要があります。
何か助けが巨大になるでしょう。ありがとう。
ありがとうございました。また、私は呼び出したファイルでエクスポートされたオブジェクトを間違って参照していました。これを投稿すると私はそれを見るのを助けた。 – dudewad
JSON.stringifyについて知りませんでした。私はMDNのドキュメントをチェックして、あなたは完全に正しいです。どうもありがとう!一度それが私にできるようになります(10分のように待たなければならない)... – dudewad