3

为了在浏览器和节点之间共享 AMD 模块,我在两个地方都使用了 RequireJS(请参阅Node 中的 RequireJS)。

服务器/dataDao.js:

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

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

客户端/resource.js:

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

这通常可以正常工作,只要共享模块不涉及任何在服务器上不起作用的依赖项。

但是,我想介绍use.js以避免手动包装非 AMD 兼容库,例如下划线。为此,我必须在列出的依赖项前面加上use!(以触发 RequireJS 中的使用插件)。

客户端/resource.js:

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

这在浏览器中运行良好,但在 Node 中会导致错误:

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

我相信这不是特定于使用插件,而是文本等。

有没有其他人遇到过这个问题?

4

1 回答 1

0

使用0.3 版,我能够让它在 node.js 中工作。根据对您问题的评论,这可能是一个配置问题——我花了几次尝试才能找到正确的路径。

于 2012-05-02T20:17:44.333 回答