2017-03-16 81 views
0

我的代碼與SystemJS一起工作正常。 現在我將我的angular 2項目移至webpack並且System.import失敗。angular 2 System.import問題

任何ideea?謝謝!

private loadBundles(fullBundlesFilePath:any, callback?: any) { 
     System.import(fullBundlesFilePath).then((bundles:any) => { 
      bundles.forEach((bundleUrl:any) => this.loadBundle(bundleUrl, callback)); 
     }); 
    } 

希望加載的文件的內容是

module.exports = function() { 
    return [ 
     '/explorerweb_bundles/login/manifest.js', 
     '/explorerweb_bundles/printers/manifest.js' 
    ]; 
}() ; 

回答

0

這是不可能傳遞變量中的WebPack進口。 Webpack在編譯時需要知道包中包含哪些模塊,並且因爲它沒有進行程序流分析,所以它不知道包含哪些模塊。另外,導入不需要數組,而只需要一個模塊。所以,你需要做手工,像這樣:

System.import('/explorerweb_bundles/login/manifest.js').then(module => /*...*/); 
System.import('/explorerweb_bundles/printers/manifest.js').then(module => /*...*/); 

在一個側面說明System.import is deprecated贊成import()

+0

因此,無法通過angular-cli應用程序的外部URL傳遞給System.import以加載umd庫? 加載庫的唯一方法是通過專門用systemjs創建的應用程序? @ michale-jungo – user3757628

+0

是否有可能將systemjs與webpack集成? – user3757628