亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

requirejs shim好像不能解決 引用的模塊不是AMD規范的問題

requirejs shim好像不能解決 引用的模塊不是AMD規范的問題

梵蒂岡之花 2019-04-16 17:05:52
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貢獻1785條經驗 獲得超4個贊

'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加載沒發現問題
                            
查看完整回答
反對 回復 2019-04-16
?
侃侃無極

TA貢獻2051條經驗 獲得超10個贊

注意引入非amd模塊的命名,需要與文件名一致,且路徑也應該基于baseUrl,如a.js在baseUrl下的unit文件夾下,shim命名應該是‘unit/a’
                            
查看完整回答
反對 回復 2019-04-16
  • 2 回答
  • 0 關注
  • 414 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號