[英]Using Babel to convert ES6 modules to ES5 AMD modules, not working as expected
[英]using knockout es5 plugin in AMD module
我可以用基因敲除與requirejs應用AMD模塊, 這里的例子。 實際使用dojo工具箱。
// Main viewmodel class
define(['knockout-x.y.z'], function(ko) {
return function appViewModel() {
this.firstName = ko.observable('Bert');
};
});
但是我怎么能使用基因敲除擴展名基因敲除-es5,這在AMD模塊中是行不通的。
沒錯,基因剔除-es5不是AMD兼容模塊。 但是,這不會阻止您將其與RequireJS一起正確使用。 您需要做的是在您的require config中使用一個墊片( http://requirejs.org/docs/api.html#config-shim )。 之所以需要這樣做,是因為您需要告訴要求該插件取決於Knockout,因此無法首先加載。
這是您的require config的外觀:
var require = {
paths: {
'ko': 'knockout.min',
'koES5': 'knockout-es5.min',
},
shim: {
'koES5': { deps: ['ko'] }
}
};
這將創建2條路徑,一條路徑到Knockout,一條路徑到Knockout-es5。 在填充片中,我們告訴您要求剔除-es5取決於剔除。 這樣可以確保以正確的順序進行加載。
現在,您的RequireJS模塊應如下所示:
define(['ko', 'koES5'], function(ko) {
return function appViewModel() {
this.firstName = ko.observable('Bert');
};
});
注意:從技術上講,您不需要ko作為要求,因為koES5已被要求加載,因為它已被標記為依賴項。 另外,您不需要koES5的變量,因為它不會返回您要使用的任何內容,您只是將其添加為確保文件被加載的要求。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.