webpack學習筆記--配置entry


 Entry

 entry 是配置模塊的入口,可抽象成輸入,Webpack 執行構建的第一步將從入口開始搜尋及遞歸解析出所有入口依賴的模塊。

 entry  配置是必填的,若不填則將導致 Webpack 報錯退出。

context

Webpack 在尋找相對路徑的文件時會以 context 為根目錄,context 默認為執行啟動 Webpack 時所在的當前工作目錄。 如果想改變 context 的默認配置,則可以在配置文件里這樣設置它:

1 module.exports = {
2   context: path.resolve(__dirname, 'app')
3 }

注意, context 必須是一個絕對路徑的字符串。 除此之外,還可以通過在啟動 Webpack 時帶上參數 webpack --context 來設置 context

之所以在這里先介紹 context,是因為 Entry 的路徑和其依賴的模塊的路徑可能采用相對於 context 的路徑來描述,context 會影響到這些相對路徑所指向的真實文件。

Entry 類型

Entry 類型可以是以下三種中的一種或者相互組合:

類型 例子 含義
string './app/entry' 入口模塊的文件路徑,可以是相對路徑。
array ['./app/entry1', './app/entry2'] 入口模塊的文件路徑,可以是相對路徑。
object { a: './app/entry-a', b: ['./app/entry-b1', './app/entry-b2']} 配置多個入口,每個入口生成一個 Chunk

如果是  array  類型,則搭配  output.library  配置項使用時,只有數組里的最后一個入口文件的模塊會被導出。

Chunk 名稱

Webpack 會為每個生成的 Chunk 取一個名稱,Chunk 的名稱和 Entry 的配置有關:

  • 如果 entry 是一個  string  或  array ,就只會生成一個 Chunk,這時 Chunk 的名稱是  main ;
  • 如果 entry 是一個  object ,就可能會出現多個 Chunk,這時 Chunk 的名稱是  object  鍵值對里鍵的名稱。

配置動態 Entry

假如項目里有多個頁面需要為每個頁面的入口配置一個 Entry ,但這些頁面的數量可能會不斷增長,則這時 Entry 的配置會受到到其他因素的影響導致不能寫成靜態的值。其解決方法是把 Entry 設置成一個函數去動態返回上面所說的配置,代碼如下:

 1 // 同步函數
 2 entry: () => {
 3   return {
 4     a:'./pages/a',
 5     b:'./pages/b',
 6   }
 7 };
 8 // 異步函數
 9 entry: () => {
10   return new Promise((resolve)=>{
11     resolve({
12        a:'./pages/a',
13        b:'./pages/b',
14     });
15   });
16 };

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM