2012-04-20 4 views
3

ブラウザとノード間でAMDモジュールを共有するために、両方の場所でRequireJSを使用しています(RequireJS in Node参照)。プラグインを使用した依存関係でノードに障害が発生する(例:use.js)

サーバー/ dataDao.js:

var requirejs = require('requirejs'); 
var dataDao = module.exports = {}; 

requirejs(['client/resource'], function (Resource) { 
    ... 
}); 

クライアント/ resource.js:

define(['underscore'], function (_) { 
    ... 
}); 

これは、一般的に限り、共有モジュールはドン任意の依存関係を伴わないよう、[OK]を働いていますサーバー上で作業しないでください。

ただし、アンダースコアのようなAMD以外の互換性のあるライブラリを手動でラップするのを避けるため、use.jsをご紹介します。これを行うには、リストされた依存関係にuse!という接頭辞を付ける必要があります(RequireJSでプラグインを使用するために)。

クライアント/ resource.js:

define(['use!underscore'], function (_) { 
    ... 
}); 

これはブラウザでも動作しますが、ノードにエラーが発生します。

Error: Calling node's require("use") failed with error: Error: Cannot find module 'use' 

私は、これは使用プラグインに固有のものではないと考えているが、また、テキストなど

他に誰かがこの問題を抱えていますか?

+0

あなたの設定はどのようなものですか? – fncomp

答えて

0

version 0.3 of useとすると、ノードで動作させることができました。あなたの質問のコメントによれば、それは構成の問題かもしれません - それは私にパスの権利を得るためにいくつかの試みが必要でした。

+0

はい、実際には問題になりました。そして、私はuse.jsのバグに遭遇したので、パッチを当てなければなりませんでした。 0.3のuse.jsにノードのサポートが含まれていることをうれしく思います。 – wachunga

関連する問題