loader1 loader的配置和執行順序

2021-09-10 21:16:36 字數 2484 閱讀 9139

配置單個loader請見上乙個檔案

陣列形式

let path = require('path');

module.exports = ,

resolveloader:,

module:

]} }

物件形式

let path = require('path');

module.exports = ,

resolveloader:,

module:

},},}]

} }

一般情況下,loader的執行順序為從右往左,從下往上。

可以通過enforce屬性去改變執行順序。

module:,

enforce:'pre'

},},

}]

}

```>上面的執行順序就是 loader3、loader1、loader2

//inline-loader

function loader(source)

module.exports = loader;

module.exports = 'yuhua';

let str = require('inline-loader!./a.js');//這句話的意思就是把a.js的內容匯入,並傳遞到inline-loader,然後require的是inline-loader處理後的結果

重點:let str = require(『inline-loader!./a.js』);這句話的意思就是把a.js的內容匯入,並傳遞到inline-loader,然後require的是inline-loader處理後的結果

現在有以下檔案

module:,

enforce:'pre'

},},

}] }

//某某-loader

function loader(source)

module.exports = loader;

module.exports = 'yuhua';

let str = require('inline-loader!./a.js')

執行順序

先找到入口檔案index.js,對index.js按照loader先後順序進行loader的處理,先後列印出:

loader3~~~~~~~~

loader1~~~~~~~~

loader2~~~~~~~~

然後發現index.js中有引入a.js,那麼對a.js按照loader先後順序進行loader的處理,因為a.js是使用inline-loader的,並且引用方式為』inline-loader!./a.js』,所以先後列印出:

loader3~~~~~~~~

loader1~~~~~~~~

loader2~~~~~~~~

inline-loader~~~~~~~~

所以總共先後列印順序為:

loader3~~~~~~~~

loader1~~~~~~~~

loader2~~~~~~~~

loader3~~~~~~~~

loader1~~~~~~~~

loader2~~~~~~~~

inline-loader~~~~~~~~

我們一般使用inline-loader的方式為:

let str = require('inline-loader!./a.js')
其實,使用inline-loader不止這一種方式,不同的字首代表不同的意思。

無字首:所有型別loader都要處理

let str = require('inline-loader!./a.js')
-!字首:不會讓檔案再去通過pre和normal loader來處理

let str = require('-!inline-loader!./a.js')
!字首 不會通過normal loader來處理

let str = require('!inline-loader!./a.js')
!! 只通過inline-loader來處理

let str = require('!!inline-loader!./a.js')
每個loader都由pitchloader和normalloader這兩部分組成。pitch和normal的執行順序正好相反,當pitch沒有定義或者沒有返回值時,會先依次執行pitch在獲取資源執行loader,如果定義的某個pitch有返回值則會跳過讀取資源和自己的loader

Loader的整體結構

loader 的整體結構。1 loader被bootsector載入到了baseofloader,偏移位址offsetofloader。純實體地址baseofloaderphyaddr。2loader的功能0 呼叫中斷,將得到的記憶體資訊,存入資料buf中。loader的功能1 載入kernel.b...

Webpack的安裝與loader的配置

webpack的安裝與loader的配置 先在官網安裝node.js 和npm 然後在cmd中安裝webpack 以3.6.0版本為例 新建專案,結構如下 在vscode控制台中輸入 若出現以下報錯 輸入set executionpolicy scope currentuser 和remodtesi...

loader 和plugin的區別是什麼?

參考 webpack原理 前端面試 webpack篇 1 使用webpack一般配置什麼?webpack是乙個靜態模組處理器,當其處理應用程式時,會遞迴的構建乙個關係依賴圖,其中包含應用程式需要的每個模組,然後把所有這些模組打包成乙個或多個包 2 使用webpack的打包過程 初始化 啟動構建,讀取...