2015-07-10 25 views
2

是的,我讀過How do I shim a non CommonJS, non AMD package which depends on global jQuery & lodash?使用jspm加載依賴於全局jQuery的腳本

我試圖通過jspm加載X.js,這不是一個'包',而是一箇舊的js文件我無法控制需要一個全局jQuery對象,並且需要像運行腳本一樣運行標籤。

我在使用System.import('app/X');加載它。

我嘗試了各種填充/全局技巧,使其加載,但我不能完全弄清楚。

如何編寫config.js以便能夠導入該X文件以便它看到全局jQuery對象?我是否必須讓X成爲'包'並安裝它才能夠更好地提升?

謝謝。

回答

3

如果安裝通過JSPM jQuery的,你需要的是設置薈萃「DEPS」屬性是這樣的:

System.config({ 
    meta: { 
    'app/X': { 
     deps: ['jquery'] 
    } 
    } 
}); 

System.import('app/X'); 

一定要正確地獲得X路徑和檢查JSPM如何設置System.config '路徑'和'地圖',默認情況下會自動添加後綴.js(使用路徑* .js通配符),因此您不得添加它。

也許嘗試從文檔這些鏈接看起來也https://github.com/systemjs/systemjs/blob/master/docs/module-formats.md#globalshttps://github.com/systemjs/systemjs/blob/master/docs/config-api.md#meta

+0

爲什麼要從'jquery'導入'app/X';'在其自己的文件中導入$似乎工作並執行System.import('app/X');'不,甚至當這樣配置?對不起,我對jspm還是一個新東西,甚至對於文檔來說,至少可以說是令人困惑的。 –

1

如果提供的元「DEPS」屬性如下內容(由馬蒂亞斯·拉斯穆森的建議)不會做的伎倆,

System.config({ 
    meta: { 
    'app/X': { 
     deps: ['jquery'] 
    } 
    } 
}); 

,那麼你可能必須提供一個「全局」元屬性類似如下:

System.config({ 
    meta: { 
    'app/X': { 
     globals: { 
      'jquery': 'jquery' 
     } 
    } 
    } 
}); 

爲了使ABO已經工作,你將需要通過jspm安裝jquery。做以上操作也可以讓你通過執行​​或import 'app/X';來導入插件,而不必導入jquery。單獨導入插件也應該引入jQuery作爲依賴。

相關問題