seajs require("jquery")返回null解決辦法

seajs require("jquery")返回null解決方法
jquery

    seajs.use 某具名模塊時發現其引用爲 null 的問題,或是移動了文件位置致使引用爲 null 或者 object is not function 的問題。這些問題都指向 Sea.js 的一個基本約定原則:ID 和路徑匹配原則。git

    使用 seajs.use 或 require 進行引用的文件,若是是具名模塊(即定義了 ID 的模塊),會把 ID 和 seajs.use 的路徑名進行匹配,若是一致,則正確執行模塊返回結果。反之,則返回 null。github

 

首先能夠先參 看這個issue:https://github.com/seajs/seajs/issues/962curl

 

因爲在 Sea.js 中,全部 JavaScript 模塊都遵循 CMD(Common Module Definition) 模塊定義規範。該規範明確了模塊的基本書寫格式和基本交互規則。ui

jQuery 1.7開始支持AMD規範,能夠和遵循AMD規範的腳本加載器協做,好比RequireJS或者curl.js。url

 

因此須要調整JQuery源碼,以下:spa

 

//old
if ( typeof define === "function" && define.amd && define.amd.jQuery ) {
    define( "jquery", [], function () { return jQuery; } );
}

//new
if ( typeof define === "function" && define.cmd && define.cmd.jQuery ) {
    define( "jquery", [], function () { return jQuery; } );
}
相關文章
相關標籤/搜索