webpack-dashboard直觀顯示webpack構(gòu)建

在進(jìn)行webpack單頁面打包時,過程中是不顯示的,對于webpack打包進(jìn)程是無法看到的。例如這樣的過程:

image.png

這樣總感覺太突兀了。

當(dāng)然如果你要簡單的顯示,配置下打包命令就可以了

webpack --progress

這里我們來介紹webpack-dashboard

1. webpack-dashboard

webpack-dashboard是用于改善開發(fā)人員使用webpack時控制臺用戶體驗(yàn)的一款工具。它摒棄了webpack(尤其是使用dev server時)在命令行內(nèi)諸多雜亂的信息結(jié)構(gòu),為webpack在命令行上構(gòu)建了一個一目了然的儀表盤(dashboard),其中包括構(gòu)建過程狀態(tài)日志以及涉及的模塊列表。有了它,你就可以更加優(yōu)雅的使用webpack來構(gòu)建你的代碼。

1.1 它是什么

簡單地說,webpack-dashboard就是把原先你使用webpack時(特別是使用webpack dev server時)命令行控制臺打印的日志:

Creating an optimized production build...
Compiled with warnings.

./src/App.js
  Line 10:  'One' is assigned a value but never used  no-unused-vars
  Line 16:  'Two' is assigned a value but never used  no-unused-vars

Search for the keywords to learn more about each warning.
To ignore, add // eslint-disable-next-line to the line before.

File sizes after gzip:

  97.39 KB  build/static/js/main.4348a7e3.js
  69.13 KB  build/static/js/0.f84fa404.chunk.js
  39.43 KB  build/static/js/2.81fe7f28.chunk.js
  39.42 KB  build/static/js/1.a2c322a6.chunk.js

The project was built assuming it is hosted at the server root.
To override this, specify the homepage in your package.json.
For example, add this to build it for GitHub Pages:

轉(zhuǎn)換成了這樣:


image.png

看到這里,是不是覺得整個人生都變美好了呢。仔細(xì)看,這個dashboard里面按日志(Log)、狀態(tài)(Status)、運(yùn)行(Operation)、過程(Progess)、模塊(Modules)、產(chǎn)出(Assets)這6個部分將信息區(qū)分開來。用官方的話,這將會給你一種在NASA工作的即使感,哈哈。

1.2 如何使用

其實(shí)安裝和使用webpack-dashboard的過程非常簡單,首先使用npm本地安裝它,到你基于webpack的前端項(xiàng)目上:

npm install webpack-dashboard --save-dev

如果你利用webpack-dev-server啟動了一個server,而不是express的話,可以直接在webpack.config.js里面初始化dashboard。

首先,導(dǎo)入dashboard和其對應(yīng)的插件,并創(chuàng)建一個dashboard的實(shí)例:

const Dashboard = require('webpack-dashboard');
const DashboardPlugin = require('webpack-dashboard/plugin');
const dashboard = new Dashboard();

然后,在對應(yīng)的plugins里面添加DashboardPlugin:

plugins: [
  new DashboardPlugin(dashboard.setData)
]

最后,你需要讓dev server在靜默的狀態(tài)中啟動(主要是為了去掉多余的日志),要實(shí)現(xiàn)這一點(diǎn),你可以像官方的做法那樣,在WebpackDevServer的構(gòu)造函數(shù)里添加 quiet: true。

new WebpackDevServer(
  Webpack(settings),
  {
    publicPath: settings.output.publicPath,
    hot: true,
    quiet: true, // lets WebpackDashboard do its thing
    historyApiFallback: true,
  }
).listen

當(dāng)然,你也可以在npm的script里面啟動dev server時添加quiet選項(xiàng)(我在嘗試的時候選擇這種簡單的方式)。

"scripts": {
  "start": "webpack-dev-server --quiet"
},

這樣,你就可以運(yùn)行諸如npm start這樣的命令啟動你的server。然后,你就可以休息一下,泡杯咖啡,假裝自己就是一位宇航員,靜靜地看著你的dashboard。

如下圖所示,為我嘗試時的截圖:


image.png

這里顯示的字符串“越界”,是因?yàn)闆]有使用quiet模式

1.3 最后

本文只介紹了基于webpack-dev-server的這一種使用情況,其他啟動server的方式(比如express)或者其他情況可以參考webpack-dashboard github官方倉庫。

webpack-dashboard目前還處于初期階段,所以必然還有一些值得注意或者值得改進(jìn)的地方。如果你使用的是OS X自帶的終端(Terminal),需要確認(rèn)“View → Allow Mouse Reporting”是使能(Enable)狀態(tài),如果你的終端沒有這個功能的話,你或許可以嘗試一下iTerm2。另外,如果你忘記使用quiet模式或者你的某句日志或者名字過長,可能會導(dǎo)致顯示的字符串“越界”,跑到另一個區(qū)域,看起來沒有那么直接美觀了。

最后,如果你想簡單的看一下webpack-dashboard啟動起來的效果,你可以參考使用本文示例代碼。

2. PROGRESSPLUGIN插件

new webpack.ProgressPlugin(function handler(percentage, msg) {
  console.log((percentage.toFixed(2) * 100) + '%', msg);
})

3. progress-bar-webpack-plugin

image.png

安裝:https://www.npmjs.com/package/progress-bar-webpack-plugin

配置:

new ProgressBarPlugin({
    format: 'build [:bar] :percent (:elapsed seconds)',
    clear: false, 
    width: 60
  })

4. webpack 相關(guān)文章

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • webpack 介紹 webpack 是什么 為什么引入新的打包工具 webpack 核心思想 webpack 安...
    yxsGert閱讀 6,673評論 2 71
  • 構(gòu)建一個小項(xiàng)目——FlyBird,學(xué)習(xí)webpack和react。(本文成文于2017/2/25) 從webpac...
    布蕾布蕾閱讀 17,137評論 31 98
  • 最近在學(xué)習(xí) Webpack,網(wǎng)上大多數(shù)入門教程都是基于 Webpack 1.x 版本的,我學(xué)習(xí) Webpack 的...
    My_Oh_My閱讀 8,334評論 40 247
  • 版權(quán)聲明:本文為博主原創(chuàng)文章,未經(jīng)博主允許不得轉(zhuǎn)載。 webpack介紹和使用 一、webpack介紹 1、由來 ...
    it筱竹閱讀 11,463評論 0 21
  • 今天是我第一次整理房間,先從書柜開始,我先把書分分類,媽媽的書放一塊,小書放一塊,大書放一塊,這樣放起來會更好...
    劉園園LY閱讀 552評論 0 0

友情鏈接更多精彩內(nèi)容