用require.js尝试模块加载(AMD)时出错
在这一点上,我对requirejs感到有些沮丧。
我试图在我的App.coffee文件中加载jquery和其他库。 问题是我无法在我的定义中加载模块依赖关系。 一些输入参数(jq,jsn等)为null或仅仅是HTMLDocument对象。 这个改变基于我尝试插件的排列:'order','domReady',或者没有。
我的js lib目录看起来像A)。 我的App.coffee文件看起来像B)。 我试过在require.config中使用'paths',只是使用原始文件引用(你在下面看到)。 我知道requirejs-jquery集成。 但我不应该能够订购我的插件加载?
如果我尝试命名'路径',我会得到一组不同的错误。 我看到有人建议jquery 1.7(也在这里)。 这管用吗? 我首先想退后一步,确保我的概念正确无误。 i)require.config ii)模块定义w /依赖关系,iii)订单插件等
如果我正确地将这些概念解决了,我会认为这是一个jQuery版本问题。 但是,这不仅仅是jQuery的依赖。 以这种方式浪费时间令人难以置信的令人难以置信。 任何帮助表示赞赏。 提前致谢。
一个)
$ tree js/lib/ js/lib/ ├── backbone.js ├── backbone_loader.js ├── domReady.js ├── jquery-1.6.3.js ├── json2.js ├── order.js ├── pure.js ├── require.js └── underscore.js
B)
require.config({ baseUrl: "/js", paths: order : '/js/lib/order' jQuery : '/js/lib/jquery-1.6.3' json2 : '/js/lib/json2' Underscore : '/js/lib/underscore' Backbone : '/js/lib/backbone_loader' pure : '/js/lib/pure' }) define( [ 'js/lib/order!js/lib/jquery-1.6.3', 'js/lib/order!js/lib/json2', 'js/lib/order!js/lib/underscore', 'js/lib/order!js/lib/backbone', 'js/lib/order!js/lib/pure', 'js/lib/order!js/bkeeping/models', ] (jq, jsn, und, bbn, pur, models) -> console.log('bkeeping LOADED') # return an object with the models in it models : models jQuery : jq.noConflict() json2 : jsn Underscore : und.noConflict() Backbone : bbn.noConflict() pure : pure )
最新的jQuery支持AMD加载器,并且在require.js中表现良好。 Underscore和Backbone不会,你需要:
感谢这方面的指导。
但是我去了jquery-1.7,但仍然不得不从全局空间拉出来获取对象。 这适用于我现在的其他库,以及它们的依赖关系。 我最终做的是返回一个包含依赖关系的对象。 我使用订单插件完成了图书馆加载。
将依赖对象的合约传递到您的回调函数(jq,pur,jsn等)中,对这些库不起作用。 它适用于我定义的模块(例如:models),但不适用于外部库。 我尝试了使用插件,但发现它不适用于下划线和主干,或者我没有正确设置它。 这是我现在可行的解决方案; 尽管我不得不说头痛严重混淆了require.js的好处。
define( [ 'order!js/lib/jquery-1.7', 'order!js/lib/pure', 'order!js/lib/json2', 'order!js/lib/underscore', 'order!js/lib/backbone', 'order!bkeeping/models', ] (jq, pur, jsn, und, bbn, models) -> console.log('bkeeping LOADED') # return an object with the dependencies in it models : models jQuery : jQuery.noConflict() pure : pur # pure and json2 objects are simply used in other libs. I don't need them directly json2 : jsn Underscore : _.noConflict() Backbone : Backbone.noConflict() )链接地址: http://www.djcxy.com/p/92513.html