这两种有杏仁和有杏仁的区别是什么?
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');
});
在此示例中,它使用almond来要求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');
});
答案 0 :(得分:-2)
它"后者",因为它是两个选项的后一个条款,而不是梯子,这是你向上或向下攀爬以达到不可能达到高程的东西。
有了这个"你知道得越多"解决方法:如果您使用require.js,则不能只需要一个模块:require.js用于加载依赖项,以便运行函数,因此语法为:
require(
['dependency1', 'dependency1',...],
function codetorun(dep1, dep2) { ... }
);
您的功能取决于dependency1
等代码,因此您需要"需要"在函数运行之前,要加载并作为变量提供给函数的代码。
只要在一个模块中,只需要一个模块而不需要它就没有任何意义,只要require.js可以告诉它,所以它会抛出一个错误。