Javascript require和require的区别是什么

Javascript require和require的区别是什么,javascript,node.js,requirejs,amd,almond,Javascript,Node.js,Requirejs,Amd,Almond,有杏仁和没有杏仁有什么区别 require('module') require(['module']) 编辑 它们是嵌套的: define(function(){require('module');} define(function(){require(['module']);} 前者给出了一个requirejs错误(建议使用梯形图) 我问的原因是 我在学习 在…上 如何构建一个可以用作AMD模块的库 要导出的库模块: 文件:principium.js /** * The main module

有杏仁和没有杏仁有什么区别

require('module')
require(['module'])

编辑

它们是嵌套的:

define(function(){require('module');}

define(function(){require(['module']);}

前者给出了一个requirejs错误(建议使用梯形图)

我问的原因是

我在学习 在…上 如何构建一个可以用作AMD模块的库

要导出的库模块:

文件: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
    };
});
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');
});
define([], function() {
    return require('principium');
});
返回库模块的主模块

文件:lib/main.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
    };
});
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');
});
define([], function() {
    return require('principium');
});
在本例中,它使用almond来要求
principium
返回
require('princium')
),我希望它返回导出的库 反对

但是我不使用almond,并且
require('principium')
语法给出了 错误,如果我使用
require(['principium'])
,则不会发生错误 返回导出的库对象

导出的库对象,即
返回{convert:convert};
principium.js
中返回

编辑

如何正确使用嵌套的require,以便:

var moduleExport=require('module');

正如我所期望的那样

编辑

我解决了,但我不知道它是怎么工作的,我 包括杏仁在建设和它的神奇工作

“包括”:[“./bower\u组件/ammond/ammond”,“lib/main”]

和重构

文件:lib/main.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
    };
});
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');
});
define([], function() {
    return require('principium');
});
它是“后一种”,因为它是两个选项中的后一条,而不是梯子,梯子是你爬上或爬下去达到的东西,否则是不可能达到的高度

有了这一点“你知道的更多”:如果你使用require.js,你不能只需要一个模块:require.js用于加载依赖项,以便运行函数,因此语法是:

require(
  ['dependency1', 'dependency1',...],
  function codetorun(dep1, dep2) { ... }
);
您的函数依赖于
dependency1
等中的代码,因此您需要在函数运行之前“要求”加载该代码并将其作为变量提供给函数


就require.js所知,简单地在模块中要求,而不需要它做什么,是没有意义的,因此它会抛出一个错误。

你能读懂我正在尝试做什么,并解决我的实际问题吗?这不是很好吗?但是,你的实际问题一点也不清楚,因为你没有描述你的文件布局和你的请求uireconfig.所有这些都在requirejs.org网站上解释为必要的,所以…我回答了唯一一个根据你给我们的工作内容可以回答的问题。如果你不理解这个问题,你不必写答案,只是为了侮辱别人。这是双向的。你在开始的几行中询问了使用哪种格式,所以这就是答案我能回答的部分,因为这是我理解的部分。希望其他人能帮助你的任何事情-大多数SO问题都有多个答案,如果有多个答案,你可以选择一个。如果没有答案,你可以选择一个。这就是stackoverflow的工作原理。sim,如果你对答案不满意,就不要奖励分数就这样吧。看看我的编辑,先生,也许这会对你有所帮助。如果没有,请不要评论。你可能想删除编辑并回答自己的问题,标记为“解决:)@apercu我仍然不知道它是如何工作的。也许有人可以解释。