jAn*_*ndy 5 javascript module requirejs
抱歉有点懒,而不是自己尝试,但我认为Stackoverflow上的一个很好的答案可能也会帮助其他人.我在考虑是否requireJS用来加载我的模块.目前我正在自己这样做,所以我对requireJS有一些疑问.
更确切地说,如果您有类似的电话,require(["some/module", "a.js", "b.js"], function...});并且您再次参考a.js或b.js稍后.require或.define电话,requireJS如何处理这些?我的猜测是,它会完全忽略那些额外的引用,这是正确的吗?如果是这样,是否可以强制requireJS 重新加载脚本?
我通常做的是连接我的所有js文件(包括模块),除了那些需要根据运行时条件加载的文件.就我阅读requireJS doc而言,您可以为模块定义自己的名称.所以我的问题是,您是否可以加载已存在于脚本中的模块,而无需通过线路传输? 据我所知,doc是根据模块的路径位置和文件名自动为模块创建的,所以这对我的要求没有任何意义.
通常,一个模块只会被 require.js 加载一次。require.js 将始终解决依赖关系并以正确的顺序加载模块,这样您就不必关心这一点。require对同一模块的后续调用将立即产生它。
无法重新加载模块。如果您确实需要多次加载同一模块(不幸的是,这表明您的模块设计有问题),您可以查看多版本支持。
我不确定我理解“静态加载模块”的意思。但如果我猜对了,你想将多个模块作为一个加载并单独使用它们。这是可能的:通常在您的模块中,您将执行以下操作:
define(['moduleA', 'moduleB', 'moduleC'], function (a, b, c) {
...
return exports;
});
Run Code Online (Sandbox Code Playgroud)
其中exports或多或少可以是任何东西,一个函数,一个对象,等等。所以你也可以这样做:
define(['moduleA', 'moduleB', 'moduleC'], function (a, b, c) {
...
return {moduleA: a, moduleB: b, moduleC: c};
});
Run Code Online (Sandbox Code Playgroud)
将它们全部导出。
但请注意,您确实应该查看一下优化工具。它可以将相关模块组合在一起。
最后,自动命名是一个误解,您可以明确指定模块的名称。