国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

詳解webpack介紹&安裝&常用命令

2019-11-19 16:13:15
字體:
來源:轉載
供稿:網友

webpack系列目錄

webpack 系列 二:webpack 介紹&安裝

webpack 系列 三:webpack 如何集成第三方js庫

webpack 系列 四:webpack 多頁面支持 & 公共組件單獨打包

webpack 系列 五:webpack Loaders 模塊加載器

webpack 系列 六:前端項目模板-webpack+gulp實現自動構建部署

基于webpack搭建純靜態頁面型前端工程解決方案模板, 最終形態源碼見github: https://github.com/ifengkou/webpack-template

正文

Webpack是一款用戶打包前端模塊的工具,它將根據模塊的依賴關系進行靜態分析,然后將這些模塊按照指定的規則生成對應的靜態資源。主要是用來打包在瀏覽器端使用的javascript的。同時也能轉換、捆綁、打包其他的靜態資源,包括css、image、font file、template等

webpack的官網是 http://webpack.github.io/ ,文檔地址是 http://webpack.github.io/docs/

市面已存在大量的模塊管理和打包工具,為什么還重復造輪子,webpack有什么特色?

這些已有的模塊化工具并不能很好的完成如下的目標:

  1. 將依賴樹拆分成按需加載的塊
  2. 初始化加載的耗時盡量少
  3. 各種靜態資源都可以視作模塊
  4. 將第三方庫整合成模塊的能力
  5. 可以自定義打包邏輯的能力
  6. 適合大項目,無論是單頁還是多頁的 Web 應用

webpack 特點

代碼拆分

Webpack 有兩種組織模塊依賴的方式,同步和異步。異步依賴作為分割點,形成一個新的塊。在優化了依賴樹后,每一個異步區塊都作為一個文件被打包。

Loader

 Webpack 本身只能處理原生的 JavaScript 模塊,但是 loader 轉換器可以將各種類型的資源轉換成 JavaScript 模塊。這樣,任何資源都可以成為 Webpack 可以處理的模塊。

智能解析

Webpack 有一個智能解析器,幾乎可以處理任何第三方庫,無論它們的模塊形式是 CommonJS、 AMD 還是普通的 JS 文件。甚至在加載依賴的時候,允許使用動態表達式 require("./templates/" + name + ".jade")。

插件系統

Webpack 還有一個功能豐富的插件系統。大多數內容功能都是基于這個插件系統運行的,還可以開發和使用開源的 Webpack 插件,來滿足各式各樣的需求。

快速運行

Webpack 使用異步 I/O 和多級緩存提高運行效率,這使得 Webpack 能夠以令人難以置信的速度快速增量編譯。

總結下來其主要的優勢:

1.按需加載模塊,按需進行懶加載,在實際用到某些模塊的時候再增量更新

2.webpack 是以 commonJS 的形式來書寫腳本,但對 AMD/CMD 的支持也很全面,方便舊項目進行代碼遷移。

3.能被模塊化的不僅僅是 JS 了,能處理各種類型的資源。

4.開發便捷,能替代部分 grunt/gulp 的工作,比如打包、壓縮混淆、圖片轉base64等。

5.擴展性強,插件機制完善

安裝

首先要安裝 Node.js, Node.js 自帶了軟件包管理器 npm

用npm 安裝webpack

$ npm install webpack -g

此時 Webpack 已經安裝到了全局環境下,可以通過命令行 webpack -h 查看相關指令

通常我們會將webpack安裝到項目依賴,這樣就可以使用本地版本的webpack

//進入項目目錄//確定已有package.json,沒有就npm init 創建$ npm install webpack --save-dev//查看webpack 版本信息$ npm info webpack//安裝指定版本$ npm install webpack@1.31.x --save-dev

如果要使用webpack開發工具,要單獨安裝 webpack-dev-server

$ npm install webpack-dev-server --save-dev

常用命令

webpack

構建命令,webpack的常用參數

$ webpack --config webpack.min.js //另一份配置文件$ webpack --display-error-details //顯示異常信息$ webpack --watch //監聽變動并自動打包 $ webpack -p //壓縮混淆腳本,這個非常非常重要! $ webpack -d //生成map映射文件,告知哪些模塊被最終打包到哪里了

webpack-dev-server

webpack-dev-server是一個小型的node.js Express服務器,它使用webpack-dev-middleware中間件來為通過webpack打包生成的資源文件提供Web服務。它還有一個通過Socket.IO連接著webpack-dev-server服務器的小型運行時程序。webpack-dev-server發送關于編譯狀態的消息到客戶端,客戶端根據消息作出響應。

webpack-dev-server有兩種模式支持自動刷新――iframe模式和inline模式

  1. 在iframe模式下:頁面是嵌套在一個iframe下的,在代碼發生改動的時候,這個iframe會重新加載
  2. 在inline模式下:一個小型的webpack-dev-server客戶端會作為入口文件打包,這個客戶端會在后端代碼改變的時候刷新頁面

使用iframe模式,無需額外配置,只需在瀏覽器輸入http://localhost:8080/webpack-dev-server/index.html

使用inline模式有兩種方式:命令行和nodejs API

1.命令行: 在運行時,加上 --inline 選項

$ webpack-dev-server --inline

訪問,通過http://localhost:8080 就可以訪問

2.nodejs API 方式 ,需要手動把 webpack-dev-server/client?http://localhost:8080 加到配置文件的入口文件處

webpac-dev-server支持Hot Module Replacement,即模塊熱替換,在前端代碼變動的時候無需整個刷新頁面,只把變化的部分替換掉

下章,就開始利用 Webpack 實現 前端項目的 自動構建部署!!

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 沐川县| 依兰县| 巴东县| 兴城市| 临颍县| 罗平县| 泰来县| 郴州市| 昌平区| 达尔| 错那县| 萝北县| 灵石县| 六盘水市| 清徐县| 内乡县| 康保县| 华容县| 应城市| 洪泽县| 台南市| 法库县| 达孜县| 沙田区| 汾阳市| 五河县| 宁海县| 金寨县| 汝阳县| 海阳市| 枝江市| 嘉鱼县| 龙门县| 紫阳县| 扶沟县| 南乐县| 合水县| 博白县| 台北市| 内丘县| 肇庆市|