webpack中loader和plugin的區別


從功能作用的角度區分

1. loader

由於webpack本身只能打包commonjs規范的js文件,所以針對css,圖片等格式的文件沒法打包,就需要引入第三方的模塊進行打包。

loader 擴展了webpack,只專注於轉化文件這一個領域,完成壓縮 / 打包 / 語言翻譯等,僅僅只是為了打包,僅僅只是為了打包。

  如 css-loader 和 style-loader 模塊,是為了打包css的

  如 babel-loader 和 babel-core 模塊,是為了把es6的代碼 轉成 es5

  如 url-loader 和 file-loader,是為了把圖片進行打包

2. plugin

plugin也是為了擴展webpack的功能,plugin是作用於webpack本身的;

從打包優化到壓縮,到重新定義環境變量,webpack提供了很多開箱即用的插件:

  如 CommonChunkPlugin 主要用於提取第三方庫和公共模塊,避免首屏加載的bundle文件 或者 按需加載的bundle文件體積過大,導致加載時間過長,是優化的利器

  注:CommonsChunkPlugin於4.0及以后被移除,使用SplitChunksPlugin替代

  如 html-webpack-plugin 用於html文件的拷貝,打包,還給html中自動增加了引入打包后的js文件的代碼 <script src=""></script>,還能指明把js文件引入到html文件的底部等,參考 webpack打包

從運行時機的角度區分

1. loader運行在打包文件之前,loader為在模塊加載時的預處理文件

2. plugins在整個編譯周期 都起作用

 引自: https://blog.csdn.net/jiang7701037/article/details/98887179


免責聲明!

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



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