2017-07-11 90 views
0

我一直在尋找答案,我只是無法找到一個。Webpack - 如何以特定順序合併/加載.js文件?

這是一個簡單的問題。我希望能夠合併.js文件在它們出現在IE瀏覽器,如果我有這在我的index.js(JSX)的順序,我想他們中列出的順序加載: -

require('script1.js'); 
require('script2.js'); 
require('script3.js'); 

但是,無論我嘗試什麼,webpack似乎只是以任何順序加載它們。這是一個明顯的例子,所以我可以首先加載jQuery以將$暴露給前面的腳本。不過,我只想知道如何在構建一個相當複雜的應用程序時如何做到這一點。

我希望這一直沒有回到某個地方,我已經錯過了......這是駕駛我INSANE。我習慣與Gulp SASS合作,這非常容易。

如果它有什麼區別,我使用這與ReactJS/ReactDOM。

回答

1

這是對require(以及Web2015的部分支持的ES2015的import)如何工作的基本誤解。

而不是手動維護您的腳本的順序,require/import點的目的是爲了讓你不必手動維護腳本順序。

相反,每個腳本(模塊)通過require/import聲明其依賴關係,然後環境(的WebPack,你的情況)達依賴關係圖,並確保以正確的順序加載的文件(和的情況下真正的import,在活動綁定周圍做聰明的事情)。

你的jQuery的例子就是這樣工作的:你的腳本(模塊),需要的jQuery做到這一點:

var $ = require("jquery"); 

import $ from "jquery"; 

或相似。

這使jQuery的主要功能在該模塊中可用$。它還告訴Webpack該模塊需要jQuery。所以它以正確的順序加載腳本以實現這一點。

更多在the Webpack Introduction

+0

一個(遲來的)謝謝你的迴應...必須花費時間遠離開發,但我現在回來了。關於你寫的是什麼......這是否僅適用於jQuery的NPM安裝?我已經嘗試從我的腳本文件夾中爲jQuery slim中的文件導入$ ...',但是我得到$/jQuery未定義錯誤。希望這可以幫助我更好地理解Webpack如何使功能可用。 – U4EA

+0

@ U4EA:我認爲我需要一些Webpack特定的配置,但我沒有做到。 –