2017-03-08 41 views
3

我試圖用的WebPack使用進口裝載機2.2導入reveal.js但我不斷收到一個錯誤:無法與進口的WebPack 2.2 Reveal.js

遺漏的類型錯誤:無法設置屬性「顯示」未定義

我試圖將其導入這樣的: require('imports-loader?this=>window!reveal.js');

這應該注入全局窗口變量this

的代碼導致錯誤的部分是這樣的:

(function (root, factory) { 
    if (true) { 

     root.Reveal = factory(); 
    } 
})(undefined, function() { 

undefined在最後一行被傳遞到函數作爲root參數。

此代碼是webpack如何導入reveal.js庫。出於某種原因,當它將代碼捆綁在一起時,webpack似乎將this替換爲undefined

如何正確導入此庫與webpack?我也試過腳本加載器,並得到相同的錯誤。

回答

2

在的WebPack配置:

rules: [ 
    { parser: { amd: false }} 
] 

這將防止從的WebPack限定AMD定義變量,這就是爲什麼reveal.js被觸發在其出廠包裝這一條件。

之後,我也是通過

import head from 'headjs/dist/1.0.0/head'; 
import Reveal from 'reveal.js/js/reveal'; 

// Reveal.initialize(
進口reveal.js和head.js