为了在浏览器和节点之间共享AMD模块,我在两个地方都使用RequireJS(参见RequireJS in Node)。
服务器/ dataDao.js:
var requirejs = require('requirejs');
var dataDao = module.exports = {};
requirejs(['client/resource'], function (Resource) {
...
});
的客户机/ resource.js:
define(['underscore'], function (_) {
...
});
这通常一直正常,只要共享模块不涉及任何在服务器上不起作用的依赖项。
但是,我想介绍use.js,以避免手动包装非AMD兼容的libs,如下划线。为此,我必须使用use!
为列出的依赖项添加前缀(以触发RequireJS中的use plugin)。
的客户机/ resource.js:
define(['use!underscore'], function (_) {
...
});
这在浏览器中运行良好,但在Node中导致错误:
Error: Calling node's require("use") failed with error: Error: Cannot find module 'use'
我认为这不是特定于使用插件,而是文本等。
还有其他人遇到过这个问题吗?