[英]what is the difference between require and require
有杏仁和无杏仁这两者之间有什么区别?
require('module');
require(['module']);
编辑
嵌套的:
define(function() { require('module'); }
define(function() { require(['module']); }
前者给出了requirejs错误(建议使用梯子)。
我问的原因是
我正在研究example-libglobal,以了解如何构建可用作AMD模块的库。
我们要导出的库模块:
File: principium.js
/**
* The main module that defines the public interface for principium,
*/
define(function (require) {
convert = require('principium/convert');
//Return the module value.
return {
convert: convert
};
});
返回库模块的主模块。
File: lib/main.js
define(function() {
//Use almond's special top-level, synchronous require to
//get the final module value, and export it as the public
//value.
return require('principium');
});
在这个例子中,它使用杏仁要求principium
( return require('principium')
我希望返回导出库对象。
但是我不使用杏仁,而require('principium')
语法给出了错误,并且如果我改用require(['principium'])
,则不会返回导出的库对象。
导出的库对象,即我的意思是return { convert: convert };
在principium.js
返回。
编辑
我如何正确使用嵌套需求,以便:
var moduleExport = require('module');
如我所料。
编辑
我解决了它,但是我不知道它是如何工作的,我在构建中加入了杏仁,它神奇地起作用。
"include": ["../bower_components/almond/almond", "lib/main"]
并重构
File: lib/main.js
define([], function() {
return require('principium');
});
这是“后期”,因为它是两个选项的后一个子句,而不是梯子,这是您要上下移动才能达到的目标,否则就无法达到标高。
有了一点“更多的了解”:如果您使用的是require.js,则不能只需要一个模块:require.js用于加载依赖项,以便运行函数,因此语法为:
require(
['dependency1', 'dependency1',...],
function codetorun(dep1, dep2) { ... }
);
你的功能是依赖于从代码dependency1
,等等,因此你“需要”的代码被加载并提供为变量的函数,该函数甚至应该运行之前。
就require.js所知,仅在模块中进行需求而不需要它就没有意义,因此会引发错误。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.