javascript – requirejs 引用 CSS 的方法
使用 require.js 可以載入 js 檔,但如果要載入 css 的話,就必須透過 require-css 才有辦法載入。
安裝方法
- 下載後,將 require-css/css.min 放到你的專案路徑。
- 接著設定 requirejs 如
123456789101112131415161718192021222324requirejs.config({//避免緩存urlArgs: "bust=" + (new Date()).getTime(),//路徑或別名paths: {'jq' : 'plugin/JS/jquery-1.11.1.min', //jQuery 核心'jqui' : 'plugin/JS/jquery-ui-1.11.2/jquery-ui.min', //UI 套件,但是依賴 jQuery,所以要想辦法先載入 jQuery 核心。'jqui-css' : 'plugin/JS/jquery-ui-1.11.2/jquery-ui.min', // UI 的樣式檔},//初始化模組map : {'*': {'css': 'plugin/JS/require-css/css.min' //填寫我們下載後放置的檔案路徑}},//依賴shim: {'jqui' : {deps: ['jq', 'css!jqui-css']},}})
- 中間這段 map 就是當載入之前,務必要優先載入的外掛,例如我們這次的 require-css
1234567map : {'*': {'css': 'plugin/JS/require-css/css.min'}},
我們自訂一個叫做 ‘css’ 的辨識詞,之後只要在前綴的文字打上 『css!』,系統就會知道我們要載入 CSS 文件。
‘plugin/JS/require-css/css.min’ 是引用我檔案放置的位置。 - 依賴的部分,我的 jqui 會依賴 ‘jq’ 與 ‘css!jqui-css’。
12345shim: {'jqui' : {deps: ['jq', 'css!jqui-css']},}
‘jq’ 會從上方 path 設定中得知,要先引用 plugin/JS/jquery-1.11.1.min.js。
‘css!jqui-css’ 因為有 『css!』作為前綴,所以系統會被知道要使用的是 css 檔而不是 js 檔。後方的 ‘jqui-css’ 也是參考了 path 設定,要引用 plugin/JS/jquery-1.11.1.min.css 檔。 - 所以當我們這麼使用
12345requirejs(['jqui']);
因為依賴已經設定的關係,我們除了加載 plugin/JS/jquery-ui-1.11.2/jquery-ui.min.js 之外,在這之前還會分別加載 plugin/JS/jquery-1.11.1.min.js 與 plugin/JS/jquery-ui-1.11.2/jquery-ui.min.css。
目前這樣看來很分散,程式碼並不是很漂亮,邏輯也跳躍,覺得不是個好方法,但是是目前解決的方式吧!相關資料可以參考
參考資料
require.js 相關的外掛