如何使用module.exports和requireJS?
我在html和js方面是个不折不扣的家伙,所以如果这是一个愚蠢的问题,请原谅我,但是,我试图使用requireJs导出节点中的模块,我无法让函数正常工作。 下面是从示例中提取的代码 首先,我有一个main.js,如文档中的注释所示 以及导出答案的hellives.js如何使用module.exports和requireJS?,module,requirejs,Module,Requirejs,我在html和js方面是个不折不扣的家伙,所以如果这是一个愚蠢的问题,请原谅我,但是,我试图使用requireJs导出节点中的模块,我无法让函数正常工作。 下面是从示例中提取的代码 首先,我有一个main.js,如文档中的注释所示 以及导出答案的hellives.js module.exports= 'Hello'; }); 结果什么也得不到,所以我定义了导出和模块 define( function(exports,module){ module.exports= 'Hello';
module.exports= 'Hello';
});
结果什么也得不到,所以我定义了导出和模块
define( function(exports,module){
module.exports= 'Hello';
});
结果是:
function localRequire()
我做错了什么?我阅读了文档和示例,但不知何故我无法做到这一点。我假设您使用的
require
调用是RequireJS的require
调用,而不是Node的require
。(否则,您将得到完全不同的结果。)
您正在使用require
调用的异步形式。对于异步表单,没有可供使用的返回值,必须使用回调来获取模块值,如下所示:
require(['./greetings.js'], function(sayHi){
console.log(sayHi);
});
但是,由于您正在节点中运行,因此可以执行以下操作:
var sayHi = require('./greetings.js');
请注意,第一个参数是字符串,而不是依赖项数组。这是require
调用的同步形式。返回的值是您需要的模块。当您在节点中时,RequireJS允许您在任何地方调用此同步表单。运行浏览器时,它仅在define
调用中可用
var sayHi = require('./greetings.js');