3

ブラウザとノード間でAMDモジュールを共有するために、両方の場所でRequireJSを使用しています(ノードのRequireJSを参照)。

server / dataDao.js:

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

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

client / resource.js:

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

共有モジュールにサーバー上で機能しない依存関係が含まれていない限り、これは通常は問題なく機能しています。

ただし、アンダースコアのような非AMD互換のライブラリを手動でラップすることを避けるためにuse.jsを導入したいと思います。そのためには、リストされている依存関係の前にuse!(RequireJSでuseプラグインをトリガーするために)プレフィックスを付ける必要があります。

client / resource.js:

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

これはブラウザではうまく機能しますが、ノードでエラーが発生します。

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

これはuseプラグインだけでなく、テキストなどにも固有のものではないと思います。

他の誰かがこの問題に遭遇しましたか?

4

1 に答える 1

0

バージョン0.3を使用すると、ノードで機能させることができました。あなたの質問へのコメントによると、それは構成の問題かもしれません-パスを正しくするために私は数回の試みをしました。

于 2012-05-02T20:17:44.333 に答える