2016-06-09 38 views
0

對於我的生活,我不明白webpack如何工作。請有人幫助我。我要解釋我的情況,但它實際上更多的是如何去使用webpack的概念性問題Webpack和加載自定義腳本

所以即時通訊工程與角色2項目與webpack起動器。我有一些從AWS獲得的js腳本(我的API爲API網關的SDK)。它的大約10個js文件。目前我的index.html中列出了10個文件,而且效果很好。顯然,這並不是很好,因爲這意味着10次往返服務器以收集它們。因此,我試圖讓webpack將其包含在一個包中的旅程開始

所以我試圖做的是在我的主打字稿文件中逐一導入文件。我的應用程序被引導的文件。就像這樣,例如:

import 'assets/aws-sdk/lib/axios/dist/axios.standalone.js'; 
import 'assets/aws-sdk/lib/CryptoJS/rollups/hmac-sha256.js'; 
import 'assets/aws-sdk/lib/CryptoJS/rollups/sha256.js'; 
... 

這是遠遠不夠的嗎?這沒有用。它抱怨CryptoJS在需要它的文件中不可用。在我引入的那些文件中有一些crypto-js文件,而使用變量'CryptoJS'的文件似乎沒有看到它。

我在的WebPack發現的配置似乎加載的jQuery這樣

new webpack.ProvidePlugin({ 
    jQuery: 'jquery', 
    $: 'jquery', 
    /*CryptoJS: 'CryptoJS'*/ 
}), 

所以我加了加密認爲它需要一個ProvidePlugin。沒有工作。

我的問題是這樣的。該js文件我需要在內部使用使用CryptoJS變量,名爲做這樣的事情:

function hash(value) { 
    return CryptoJS.SHA256(value); 
} 

這工作正常,包括index.html中的所有腳本,但我得到我有多麼的WebPack應用明白什麼手段。如何導入和捆綁這些文件,以及如何使用像CryptoJS這樣的文件的可擴展內部。

回答

1

好吧,沒關係經過幾個小時的掙扎,我設法弄清楚了。進口我在做是錯誤的,對js文件添加到全局空間(相當於將它們添加到的index.html)是導入它們像這樣

require('script!./assets/aws-sdk/lib/axios/dist/axios.standalone.js'); 

該腳本裝載器的魔力。你需要在你的項目以及可以安裝從npm

+0

非常有用的感謝。 –