一钧椰、說一下對Webpack的看法
Webpack是一個模塊打包工具怨愤,可以使用它管理項目中的模塊依賴,并編譯輸出模塊所需的靜態(tài)文件齐邦。
它可以很好地管理椎侠、打包開發(fā)中所用到的HTML,CSS,JavaScript和靜態(tài)文件(圖片,字體)等措拇,讓開發(fā)更高效。
對于不同類型的依賴慎宾,Webpack有對應(yīng)的模塊加載器丐吓,而且會分析模塊間的依賴關(guān)系浅悉,最后合并生成優(yōu)化的靜態(tài)資源。
二券犁、Webpack的基本功能
代碼轉(zhuǎn)換:TypeScript 編譯成 JavaScript术健、SCSS 編譯成 CSS 等等
文件優(yōu)化:壓縮 JavaScript、CSS粘衬、HTML 代碼荞估,壓縮合并圖片等
代碼分割:提取多個頁面的公共代碼、提取首屏不需要執(zhí)行部分的代碼讓其異步加載
模塊合并:在采用模塊化的項目有很多模塊和文件稚新,需要構(gòu)建功能把模塊分類合并成一個文件
自動刷新:監(jiān)聽本地源代碼的變化勘伺,自動構(gòu)建,刷新瀏覽器
代碼校驗:在代碼被提交到倉庫前需要檢測代碼是否符合規(guī)范褂删,以及單元測試是否通過
自動發(fā)布:更新完代碼后飞醉,自動構(gòu)建出線上發(fā)布代碼并傳輸給發(fā)布系統(tǒng)。
三屯阀、有哪些常見loader
file-loader:把文件輸出到一個文件夾中缅帘,在代碼中通過相對 URL 去引用輸出的文件 (處理圖片和字體)
url-loader:與 file-loader 類似,區(qū)別是用戶可以設(shè)置一個閾值难衰,大于閾值會交給 file-loader 處理钦无,小于閾值時返回文件 base64 形式編碼 (處理圖片和字體)
css-loader:加載 CSS,支持模塊化盖袭、壓縮失暂、文件導(dǎo)入等特性
style-loader:把 CSS 代碼注入到 JavaScript 中,通過 DOM 操作去加載 CSS
json-loader: 加載 JSON 文件(默認(rèn)包含)
ts-loader: babel-loader:把 ES6 轉(zhuǎn)換成 ES5
ts-loader: 將 TypeScript 轉(zhuǎn)換成 JavaScript
less-loader:將less代碼轉(zhuǎn)換成CSS
eslint-loader:通過 ESLint 檢查 JavaScript 代碼
vue-loader:加載 Vue單文件組件
四苍凛、有哪些常見Plugin
html-webpack-plugin:根據(jù)模板頁面生成打包的 html 頁面
uglifyjs-webpack-plugin:不支持 ES6 壓縮 ( Webpack4 以前)
mini-css-extract-plugin: 分離樣式文件趣席,CSS 提取為獨立文件,支持按需加載
clean-webpack-plugin: 目錄清理
copy-webpack-plugin: 拷貝文件
webpack-bundle-analyzer: 可視化 Webpack 輸出文件的體積 (業(yè)務(wù)組件醇蝴、依賴第三方模塊)
五宣肚、webpack的loader和plugin的區(qū)別
loader:加載器,用于單純的轉(zhuǎn)換文件悠栓,作用在一個文件上
plugin:插件霉涨,相當(dāng)于一個擴展器,能夠執(zhí)行更加廣泛的任務(wù)惭适,豐富了webpack功能笙瑟,不僅局限于功能的加載