webpack中loader和plugin這兩個概念很容易為初學者混淆,在這裡,我簡單談談自己的理解。
對於loader,它就是一個轉換器,將A文件進行編譯形成B文件,這裡操作的是文件,例如將A.scss或A.less轉變為B.css ,單純的檔案轉換過程;
對於plugin,它就是一個擴展器,它豐富了wepack本身,針對是webpack打包的整個過程,它並不直接操作文件,而是是基於事件機制工作,會監聽webpack打包過程中的某些節點,例如
run:开始编译 make:从entry开始递归分析依赖并对依赖进行build build-moodule:使用loader加载文件并build模块 normal-module-loader:对loader加载的文件用acorn编译,生成抽象语法树AST program:开始对AST进行遍历,当遇到require时触发call require:事件 seal:所有依赖build完成,开始对chunk进行优化(抽取公共模块、加hash等) optimize-chunk-assets:压缩代码 emit:把各个chunk输出到结果文件
透過對節點的監聽,從而找到合適的節點對檔案做適當的處理。
以上是如何理解webpack中loader和plugin的詳細內容。更多資訊請關注PHP中文網其他相關文章!