javascript – requirejs 引用 CSS 的方法
使用 require.js 可以載入 js 檔,但如果要載入 css 的話,就必須透過 require-css 才有辦法載入。
安裝方法
- 下載後,將 require-css/css.min 放到你的專案路徑。
- 接著設定 requirejs 如
requirejs.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
map : { '*': { 'css': 'plugin/JS/require-css/css.min' } },
我們自訂一個叫做 ‘css’ 的辨識詞,之後只要在前綴的文字打上 『css!』,系統就會知道我們要載入 CSS 文件。
‘plugin/JS/require-css/css.min’ 是引用我檔案放置的位置。 - 依賴的部分,我的 jqui 會依賴 ‘jq’ 與 ‘css!jqui-css’。
shim: { '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 檔。 - 所以當我們這麼使用
requirejs([ '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 相關的外掛