webPack基本使用步驟

webPack基本使用步驟

  • 關于webPack
  • webPack配置的幾個概念
    • entry(入口)
    • output(輸出)
    • loader(輸出)
    • plugin(插件)
    • mode(模式)
  • 基本使用過程示例
    • 1.創建測試目錄和代碼
    • 2. 將index.js通過webpack進行打包

關于webPack

簡單來說,webpack就是一個打包工具,可以將相互依賴的html,css,js以及圖片字體等資源文件,經過處理打包成一個可執行的項目文件。

webPack配置的幾個概念

entry(入口)

配置entry是告訴 webpack 從哪個文件開始打包,構建內部的依賴關系圖。當確定了入口起點后,webpack 將從這個文件出發,追蹤并識別出所有它直接或間接依賴的模塊和庫。這樣,webpack 就能知道整個項目中哪些資源是必需的,并將它們組織起來。
默認值是 ./src/index.js,但我們可以通過在 webpack.config.js 中配置 entry 屬性,來指定一個(或多個)不同的入口起點。

output(輸出)

配置output是告訴webpack打包后的文件以什么文件名存在什么路徑下面。默認情況下,主輸出文件會被放置在 ./dist/main.js 路徑下,而其他的生成文件則會被存放在 ./dist 目錄中。

loader(輸出)

默認的webpack只能處理js和json文件,為了拓展處理CSS、圖片或字體文件等其他文件的能力,則需要借助loader。

plugin(插件)

插件可以用于執行范圍更廣的任務。包括:打包優化,資源管理,注入環境變量等。

mode(模式)

通過設置 mode 參數為 development、production 或 none,你可以啟用 webpack 在不同環境下的內置優化。mode 參數的默認值是 production。
development:適用于開發環境,啟用快速編譯和友好錯誤提示等功能,但不會進行代碼壓縮等生產環境優化。

production:適用于生產環境,默認啟用代碼壓縮、樹搖(去除未使用的代碼)等優化措施,以減小打包后的文件體積。

none:不啟用任何優化,適用于需要完全控制構建過程的情況。

基本使用過程示例

本示例沒有配置loader和plugin,以開發過程中的js文件為例,演示webpack最基本的使用方法。

1.創建測試目錄和代碼

在根目錄下,創建文件下 src文件夾,用于放開發過程中的源代碼,并在src文件夾下新建html文件和js文件。
在這里插入圖片描述
js文件中寫一個簡單的打印代碼
在這里插入圖片描述
html中進行引用js
在這里插入圖片描述
檢驗下是否生效
在這里插入圖片描述
可以看到正常打印出了js中的日志。

2. 將index.js通過webpack進行打包

第1步所示的index.js是我們的源代碼,現在我們看看如何使用webpack對index.js進行打包。
1)在根目錄打開終端,輸入指令npm init -y 初始化項目環境
在這里插入圖片描述
初始化后,根目錄下會多一個package.json文件
2)執行npm add webpack webpack-cli --dev將webpack安裝到開發環境;此時,文件結構如下:
在這里插入圖片描述
3)在根目錄下手動新建一個webpack.config.js文件,用于配置webpack的參數(前文所提到的entry、output等),該文件配置如下:

const path = require('path');module.exports = {// 模式:開發模式(不壓縮代碼)mode: 'development',// 入口文件entry: './src/index.js',// 輸出配置output: {filename: 'bundle.js',path: path.resolve(__dirname, 'dist'),},// 添加 watch 選項實現自動打包watch: true, // 關鍵配置:監聽文件變化
};

上面的配置內容包括三部分:我們的入口文件路徑、輸出文件的路徑和自動打包的配置(如果此項不配置的話,后續開發過程中修改index.js后需要手動輸入命令行去打包以更新輸出結果)。
4)安裝npm add --dev webpack-dev-server,使自動打包配置生效。
5)輸入打包命令:npx webpack
在這里插入圖片描述
可以看到根據我們配置的output信息,新建了dist文件夾和下面的bundle.js文件,bundle.js文件就是我們打包后的文件,其包含了源文件index.js的信息。
6)驗證打包后文件是否生效
修改html中的引用信息,直接引用bundle。
在這里插入圖片描述
運行后,發現原來index.js里面打印日志的功能仍然可以正常輸出,說明打包后的文件可以代替源文件進行工作了。
7)檢驗自動打包是否生效
保持html文件內容不動,直接修改index.js源文件的內容,刷新瀏覽器,發現日志輸入結果變化了,說明我們在修改源文件的同時,webpack已經檢測到變化并幫我們更新了打包文件。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/908153.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/908153.shtml
英文地址,請注明出處:http://en.pswp.cn/news/908153.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

龍虎榜——20250604

上證指數縮量收陽線,量能依然在5天線上,股價也在5天線上。 深證指數放量收陽線,量能站上5天均線,但仍受中期60天均線壓制。 2025年6月4日龍虎榜行業方向分析 1. 黃金 代表標的:曼卡龍、菜百股份。 驅動邏輯&#…

Viggle:開啟視頻人物替換新紀元

Viggle 的出現,為視頻人物替換帶來了前所未有的變革,為創作者和愛好者們打開了一扇通往無限可能的大門。 一、Viggle 技術原理剖析 Viggle 是一款基于先進人工智能技術的創新平臺,其核心在于能夠精準實現靜態圖片與動態視頻的融合轉化。它…

【BUG解決】關于BigDecimal與0的比較問題

這是一個很細小的知識點,但是很容易被忽略掉,導致系統問題,因此記錄下來 問題背景 明明邏輯上看a和b都不為0才會調用除法,但是系統會報錯:java.lang.ArithmeticException異常: if (!a.equals(BigDecimal…

千年之后再出發,銅官窯駛入微短劇的數字航道

過去一年里,微短劇已經成為走向全民關注、平臺扶持、政策引導的“內容新主流”。從市值百億的爆款平臺到走出國門的“短劇出海”,微短劇正在重塑中國數字文化的表達方式與產業結構,也成為各地競相爭奪的“新藍海”。 就在這樣的背景下&#…

數據庫管理-第333期 Oracle 23ai:RAC打補丁完全不用停機(20250604)

數據庫管理333期 2025-06-04 數據庫管理-第333期 Oracle 23ai:RAC打補丁完全不用停機(20250604)1 概念2 要求3 操作流程4 轉移失敗處理總結 數據庫管理-第333期 Oracle 23ai:RAC打補丁完全不用停機(20250604&#xff0…

Trae CN IDE自動生成注釋功能測試與效率提升全解析

Trae CN IDE 的自動注釋功能可以通過 AI 驅動的代碼分析生成自然語言注釋,以下是具體測試方法和優勢總結: 一、Python 代碼注釋生成測試 1. 測試環境 IDE:Trae CN IDE(需確認支持 Python)代碼示例: def …

軟考 系統架構設計師系列知識點之雜項集萃(79)

接前一篇文章:軟考 系統架構設計師系列知識點之雜項集萃(78) 第141題 軟件測試一般分為兩個大類:動態測試和靜態測試。前者通過運行程序發現錯誤,包括()等方法;后者采用人工和計算機…

有公網ip但外網訪問不到怎么辦?內網IP端口映射公網連接常見問題和原因

有公網IP但外網訪問不到的核心原因通常包括:端口未正確映射、防火墻限制、DNS解析問題、運營商端口屏蔽或路由配置錯誤?。需依次排查這些關鍵環節,其中端口映射和防火墻設置是最常見的原因。?? ?內網IP端口映射公網連接常見問題和原因及解決方案 1…

HttpServletResponse 對象用來做什么?

HttpServletResponse 對象是由 Servlet 容器創建并傳遞給 Servlet 的 service() 方法(以及間接傳遞給 doGet(), doPost() 等方法)的。它的核心作用是讓 Servlet 能夠向客戶端(通常是瀏覽器)發送 HTTP 響應。 通過 HttpServletRes…

FTPS、HTTPS、SMTPS以及WebSockets over TLS的概念及其應用場景

一、什么是FTPS? FTPS,英文全稱File Transfer Protocol with support for Transport Layer Security (SSL/TLS),安全文件傳輸協議,是一種對常用的文件傳輸協議(FTP)添加傳輸層安全(TLS)和安全套接層(SSL)加密協議支持的擴展協議。…

前端??HTML contenteditable 屬性使用指南

??什么是 contenteditable? HTML5 提供的全局屬性,使元素內容可編輯類似于簡易富文本編輯器兼容性?? 支持所有現代瀏覽器(Chrome、Firefox、Safari、Edge) 移動端(iOS/Android)部分鍵盤行為需測試 &l…

持續領跑中國異地組網路由器市場,貝銳蒲公英再次登頂銷量榜首

作為國產遠程連接SaaS服務的創領者,貝銳持續引領行業發展,旗下貝銳蒲公英異地組網路由器,憑借出色的技術實力和市場表現,斬獲2024年線上電商平臺市場銷量份額中國第一的佳績,充分彰顯了其在網絡解決方案與異地組網領域…

五大主流大模型推理引擎深度解析:llama.cpp、vLLM、SGLang、DeepSpeed和Unsloth的終極選擇指南

在人工智能的競技場上,大模型推理框架就像是為超級跑車精心調校的引擎系統——選對了能讓你的AI應用一騎絕塵,選錯了可能連"停車場"都開不出去。這些框架的核心價值在于將訓練好的"大腦"轉化為實際可用的"肌肉記憶",而選擇標準則需要像職業賽…

前端面試二之運算符與表達式

目錄 1.JavaScript 中的 和 運算符 2.|| (邏輯或) 運算符 與 ES6 默認參數的區別 與 ?? (空值合并運算符) 的區別 3.?.(可選鏈)運算符 (1). 安全訪問深層嵌套屬性 (2). 安全調用可能不存在的函數 (3). 安全訪問數組元素 4.展開運算符 (..…

GB/T 24507-2020 浸漬紙層壓實木復合地板檢測

浸漬紙層壓實木地板是指以一層或多層專用紙浸漬熱固性氨基樹脂,經干燥后鋪裝在膠合板基材正面,專用紙表面加耐磨層,基材背面可加平衡層,經熱壓、成型的地板。 GB/T 24507-2020 浸漬紙層壓實木復合地板測試項目: 測試項…

AWS DocumentDB vs MongoDB:數據庫的技術抉擇

隨著非關系型數據庫在現代應用中的廣泛應用,文檔型數據庫因其靈活的結構與出色的擴展性,逐漸成為企業開發與架構設計中的核心選擇。在眾多文檔數據庫中,MongoDB 憑借其成熟生態與社區支持占據主導地位;與此同時,AWS 提…

微信小程序實現運動能耗計算

微信小程序實現運動能耗計算 近我做了一個挺有意思的微信小程序,能夠實現運動能耗的計算。只需要輸入性別、年齡、體重、運動時長和運動類型這些信息,就能算出對應的消耗熱量。 具體來說,在小程序里,性別不同,身體基…

三軸地磁傳感器的主要應用場景

隨著材料科學、微電子技術以及傳感器技術的不斷進步,三軸地磁傳感器的性能將不斷提升,包括提高精度、降低功耗、增強抗干擾能力等。 RAMSUN提供的是一款三軸地磁傳感器采用第三代AMR技術,帶有自動溫度補償的三軸磁傳感器,該產品因…

使用 SseEmitter 實現 Spring Boot 后端的流式傳輸和前端的數據接收

1.普通文本消息的發送和接收 GetMapping("/stream")public SseEmitter streamResponse() {SseEmitter emitter new SseEmitter(0L); // 0L 表示永不超時Executors.newSingleThreadExecutor().execute(() -> {try {for (int i 1; i < 5; i) {emitter.send(&q…

nssm配置springboot項目環境,注冊為windows服務

NSSM 的官方下載地址是&#xff1a;NSSM - the Non-Sucking Service Manager1 使用powershell輸入命令,java項目需要手動配置和依賴nacos .\nssm.exe install cyMinio "D:\minio\啟動命令.bat" .\nssm.exe install cyNacos "D:\IdeaProject\capacity\nacos-s…