如何設定基本的 webpack,反應和 babel 環境

這個構建管道並不完全是你所謂的生產就緒,但它確實為你提供了一個可靠的開始,你可以新增你需要的東西,以獲得你正在尋找的開發體驗。有些人採取的方法(有時包括我自己)是採用 Yeoman.io 或其他地方的完全構建的管道,然後剝去他們不想要的東西,直到它適合那種風格。這沒有什麼不妥,但也許通過上面的例子,你可以選擇相反的方法並從裸骨中建立起來。

你可能想要新增的一些內容包括測試框架和覆蓋統計資訊,如 Karma with Mocha 或 Jasmine。與 ESLint 合作。在 webpack-dev-server 中更換熱模組,以便獲得 Ctrl + S,F5 開發體驗。此外,當前管道僅在開發模式下構建,因此生產構建任務將很好。

注意!

請注意,在 webpack.config.js 的 context 屬性中,我們使用節點路徑模組來定義路徑,而不是僅將 __dirname 連線到字串/src,這是因為 windows 討厭正斜槓 。因此,要使解決方案更具跨平臺相容性,請使用槓桿節點來幫助我們。

webpack.config.js 屬性的說明

上下文

這是 webpack 將用作解析相對檔案路徑的根路徑的檔案路徑。所以在 index.jsx 中我們使用 require('./index.html'),dot 實際上解析為 src/目錄,因為我們已經在這個屬性中定義了它。

條目

webpack 首先開始繫結解決方案。這就是為什麼你會在 index.jsx 中看到我們將需求和匯入的解決方案拼接在一起的原因。

輸出

這是我們定義 webpack 應該刪除它發現繫結的檔案的位置。我們還為檔案定義了一個名稱,我們將在其中刪除繫結的 javascript 和樣式。

devServer

這些是特定於 webpack-dev-server 的設定。contentBase 定義了伺服器應該將其作為根的位置,我們在這裡定義了 dist/資料夾作為我們的基礎。port 是伺服器將託管在其上的埠。open 用於指示 webpack-dev-server 在你啟動伺服器後為你開啟預設瀏覽器。

模組>裝載機

這定義了 webpack 使用的對映,以便在找到不同的檔案時知道該怎麼做。test 屬性為 webpack 提供正規表示式,用於確定是否應該應用此模組,在大多數情況下,我們匹配副檔名。loaderloaders 給出了我們想要用來將檔案載入到 webpack 中的載入器模組的名稱,並讓該載入器負責該檔案型別的繫結。javascript 上還有一個 query 屬性,這只是為載入器提供了一個查詢字串,所以如果我們想要的話,我們可能也會在 html 載入器上使用查詢屬性。這只是一種不同的做事方式。