Javascript 代码占用最少的JS加载程序
几天前,我遇到了一个问题,这意味着我需要JS加载器 我有以下文件:Javascript 代码占用最少的JS加载程序,javascript,loader,amd,Javascript,Loader,Amd,几天前,我遇到了一个问题,这意味着我需要JS加载器 我有以下文件: #c.js var c = {//something}; #b.js var b = Object.create(c); #main.js var a = Object.create(b); a.foo = 'bar'; 我需要从“c.js”开始按顺序加载这些文件 我对js加载程序做了一些快速的研究,发现它们中的许多都不能像我的示例那样在深度依赖下工作(或者工作起来很糟糕),只要在加载给定依赖项时启动回调函数,而不必担心给
#c.js
var c = {//something};
#b.js
var b = Object.create(c);
#main.js
var a = Object.create(b);
a.foo = 'bar';
我需要从“c.js”开始按顺序加载这些文件
我对js加载程序做了一些快速的研究,发现它们中的许多都不能像我的示例那样在深度依赖下工作(或者工作起来很糟糕),只要在加载给定依赖项时启动回调函数,而不必担心给定依赖项中的依赖项(如果你现在明白我的意思的话)
虽然有些像requireJs这样的严肃加载程序可以做到这一点,但我发现它们在这种情况下有点烦人:
define([
'jQuery',
'Underscore',
'Backbone',
'views/projects/list',
'views/users/list'
], function($, _, Backbone, Session, projectListView, userListView){
…代码太多,依赖性太少
另外,我不喜欢修改一些脚本,所以它们会返回类似于jQuery的内容,而jQuery应该返回$
为了节省时间,避免尝试所有加载程序,我提出了这个问题
所以,最大的问题是,哪个JS加载程序可以执行以下操作:
#c.js
require([], function(){
var c = {//something};
});
#b.js
require(['c.js'], function(){
var b = Object.create(c);
});
#main.js
require(['b.js'], function(){
var a = Object.create(b);
a.foo = 'bar';
});
*对不起我的英语
另外,实际上我编写了自己的加载器,它可以处理给定的事情,甚至比$script.js更小(580字节),不过,当需要一些东西时,应该传递当前脚本的文件名,比如
require('main.js',['b.js',function(){})代码>-但我不想依赖我的实现。这是一种使用require.js实现需求的方法:
// c.js
define(
{/*something*/}
);
// b.js
define(['c.js'], function(c) {
return Object.create(c);
});
// main.js
require(['b.js'], function(b) {
var a = Object.create(b);
a.foo = 'bar';
});
对我来说,这似乎很接近你想看到的,不是吗
如果您有多个依赖项,如jQuery、主干网等,并且希望将所有内容解耦,那么您将得到类似于第二个列表的结果。但是,另一种方法可能是全局加载“全局”库(如jQuery),而不使用加载器,让require.js
只处理您自己的类和代码部分。我问这个问题已经有一段时间了。
这个问题的解决方案只是使用requireJs,但以另一种方式定义模块:
define(require){
var dep1 = require("dep1"),
dep2 = require("dep2");
var MyModule = {//define something};
return MyModule;
};