var $ = require("jquery");
今天在用seajs整合js的時候,老是發現$獲取不到,但是檔案又載入進去了,後來找了半天發現是這個問題。
本質的原因在於seajs有乙個路徑和id匹配的原則
seajs的設計思想是,路徑即id。一般在呼叫define()方法時,如果只傳遞乙個factory function,那麼這個模組就是個匿名模組;或者傳遞define(module_id, dependency, factory),這個模組就是個具名模組
如果乙個檔案就是乙個模組,那麼匿名模組就可以了。但是在生產環境中,往往會把多個模組放到乙個檔案裡,但是路徑只有乙個,如何知道要載入哪個模組呢?這時候就需要給其中乙個模組賦予module_id,和path保持一致,seajs就知道應該載入這個id和path匹配的模組了
如果具名模組的id和require的path引數不匹配,就會返回null,這就是我出現這個錯誤的原因:
在jquery底部的**有這樣一行
define("jquery/jquery/1.10.1/jquery-debug", , function () );//module_id是"jquery/jquery/1.10.1/jquery-debug"
這個id和require的時候path不同,導致這個現象。解決方法很簡單
define(function());
把定義的id和依賴全部刪了就行了。
seajs 使用jquery外掛程式
seajs使用jquery外掛程式。方法一,將js外掛程式cmd模組化 define封裝成seajs模組,返回匿名函式,包含外掛程式的原始碼 created with jetbrains phpstorm.user duph date 13 3 11 time 上午9 24 to change th...
seajs中引用jquery外掛程式
步驟一 使用define封裝成seajs模組,返回匿名函式,包含外掛程式的原始碼 define function require,exports,moudles jquery 步驟二,引用 define function require,exports,moudles 如果jquery物件已經引用,...
seajs使用小結(一)
前端模組化管理工具seajs已經廣泛使用在國內前端開發中,我也算在好幾個專案中使用了幾次,從1.3.1 3.0.0也碰到了一些問題,現在想就主要的兩種使用方式進行總結,也就使用中的問題給出一些解決方案。首先,我們來看看常用的兩種seajs使用方式,一種是使用seajs.use直接將js模組引入進來,...