webpack entry入口

上一節我們講到了 webpack 的配置文件 webpack.config.js ,這個文件需要我們手動在項目根目錄下創建。創建後要對其進行配置,本節我們來看一下如何配置 webpack 中的入口,也就是 entry 屬性。

entry 入口可以用於指定 webpack 是從哪個模塊開始構建項目的,通過配置 entry 屬性的值可以指定一個或多個入口起點,默認值爲 ./src

entry 的三種形式

webpack.config.js 配置 entry 屬性,有三種形式的值,其中 stringarray 用於配置單個入口。object 用於配置多個入口。

  • string :字符串類型,入口模塊的文件路徑可以是相對路徑。
  • array :數組類型,可以將多個文件打包爲一個文件。
  • object :對象類型,每個入口生成一個 Chunk

單個入口配置

如果要配置單個入口文件,可以給 entry 指定一個 string 或者 array 類型的值,這樣就只會生成一個 chunk,當沒有配置入口的文件對象名稱時,默認使用 main

例如我們如果要給 entry 屬性傳遞一個字符串類型的值,可以像下面這樣寫:

entry:'./path/file.js'

另外,如果傳入的是一個數組類型的值,則將會創建多個主入口,並將它們的依賴導向到一個chunk 中。例如下面代碼表示當我們執行命令後,a.jsb.js 會合並打包到 bundle.js 文件中:

entry:['./path/a.js','./path/b.js'],
示例:

我們可以通過一個具體的小例子來看一下 entry 的使用。下面是我們需要的代碼:

// a.js文件
function a(){
    console.log("這是一個a.js文件");
}

// b.js文件
function b(){
    console.log("這是一個b.js文件");
}

然後配置 webpack.config.js 文件:

module.exports = {
    entry:['./a.js','./b.js'],  // 傳入一個數組
    output:{
        path:__dirname,
        filename:'./bundle.js'
    }
}

接着執行 npm run build 命令,可以看到,a.jsb.js 文件同時被打包到 bundle.js 文件中啦,如下圖所示:

多個入口配置

如果我們想要爲 webpack 配置多個入口,則可以爲 entry 設置一個 object 類型的值。語法如下:

entry: {[entryChunkName: string]: string|Array<string>}

對象語法會比較繁瑣,但是這是應用程序中定義入口的最可擴展的方式。

簡單點理解其實就是在 entry 中設置鍵值對:

entry: {
  key1: value1,
  key2: value2,
  ...        
}

這是最完整的 entry 配置,其他形式只是它的簡化形式而已。對象中的每一對屬性對,都代表着一個入口文件,因此多頁面配置時,就可以使用這種形式的 entry 配置。

示例:

要實現分離應用程序和第三方庫入口,webpack.config.js 配置文件的代碼如下所示:

const config = {
 entry: {
  app: './src/app.js',
  vendors: './src/vendors.js'
 }
};

這表示 webpack 將從 app.jsvendors.js 開始創建依賴圖,並且這些依賴圖是完全分離、互相獨立的。這種方式比較常見於只有一個入口起點的單頁應用程序中。

鏈接:https://www.9xkd.com/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章