requirejsshim好像不能解决引用的模块不是AMD规范的问题1:director.js这种库不是amd规范的,如果我不去改它的源码,把它用define包裹,它就不能被正确的注入requirejs,利用shimapi也没办法解决这个问题。2:我跑了官网的例子,backbone和underscore,shim智能解决他们依赖的问题,并没有像文档所说解决了它们不是AMD模块而转为支持AMD的问题。其实他们不用shim也是可以被正确注入的。3:我简单看了一下requirejs的源码,它源码很难看懂,makeShimExports这个方法好像也不是解决支持非AMD模块的。。希望有使用经验的朋友,可以解答我的疑惑,感谢。requirejs.config({shim:{director:{exports:'director'}}});require(['director'],function(director){console.log(director)//undefined})RequireJS2.1.17director.js1.2.6
2 回答
元芳怎么了
TA贡献1798条经验 获得超7个赞
'usestrict'require.config{shim:{director:{exports:'Router'}}}require['director'],(directorRouter)->author=()->console.log"author"books=()->console.log"books"viewBook=(bookId)->console.log"viewBook:bookIdispopulated:#{bookId}"routes={'/author':author'/books':[books,()->console.log"Aninlineroutehandler."]'/books/view/:bookId':viewBook}router=directorRouter(routes)router.init()用官网例子改写的shim加载没发现问题
慕容708150
TA贡献1831条经验 获得超4个赞
注意引入非amd模块的命名,需要与文件名一致,且路径也应该基于baseUrl,如a.js在baseUrl下的unit文件夹下,shim命名应该是‘unit/a’
添加回答
举报
0/150
提交
取消