官方已經不維護了,還請繼續食用webpack-dev-server
倉庫地址html
配合webpack4食用最佳,在webpack3及之前的版本會有幫助信息提示node
由於熱加載使用的是WebSockets,因此在老版本的瀏覽器裏用不了webpack
webpack-dev-server | webpack-serve | ||
---|---|---|---|
Initial release | 23 Dec 2014 | 12 feb 2018 | |
Total releases | 74 | 7 | |
Github stars | 3449 | 231 | |
Lines of code | 28301 | 16075 | |
under the hood | Express.js (22047 lines) | Koa.js (8913 lines) | |
API | not aligned | API first | |
Mode | only maintenance | evolution | |
Total | work slower but supports old browsers | fast alternative |
How is webpack-serve different from webpack-dev-server?
$ npm install --save-dev webpack-serve 或 $ yarn add -D webpack-serve
$ webpack-serve 或 $ webpack-serve ./webpack.config.js 或 $ webpack-serve --config ./webpack.config.js
const serve = require('webpack-serve'); serve([option]);
在項目的根目錄/下:git
1. package.json裏添加serve屬性 2. 建立.serverc或者.serverc.json文件,支持json或者yml的編寫格式 3. 使用commonjs規範編寫的serve.config.js文件
更經常使用的方式是在webpack的config裏添加serve屬性github
介紹幾個我以爲經常使用的,其他的能夠在官方文檔裏查看web
Type: Object
npm
Default: {}
json
用於設置webpack的配置信息api
const serve = require('webpack-serve'); const config = require('./webpack.config.js'); serve({config});
Type: String|[String]瀏覽器
Default: process.cwd()
用於設置靜態資源的讀取路徑
Note: 默認狀況下,該配置下的路徑讀取優先級高於webpack的配置路徑
const serve = require('webpack-serve'); const config = require('./webpack.config.js'); serve({ content: [__dirname], config });
若是想要使用webpack的配置路徑,須要使用到add附加屬性的配置,在content以前調用webpack
serve({ content: [__dirname], config add: (app, middleware, options) => { middleware.webpack(); middleware.content(); } });
附加功能配置
上面的content裏有簡單的使用介紹
回調參數:
還有不少功能能夠添加進去
對於單頁應用來講,historyApiFallback
是頗有必要的一個功能,主要是用於刷新頁面後路由重定向,
對於須要作中間層api轉發的還有端口和路由轉發的proxy
模塊也是有用到的
// 由於基於koa2, 因此要把中間件用koa-connect包一層 const convert = require("koa-connect"); const history = require("connect-history-api-fallback"); // h5路由適配 serve: { add: (app, middleware, options) => { app.use(convert(proxy('/api', { target: 'http://localhost:8000' }))); app.use(convert(history({ disableDotRule: true, verbose: true, htmlAcceptHeaders: ['text/html', 'application/xhtml+xml'] // ... see: https://github.com/bripkens/connect-history-api-fallback#options }))); }, port: '3000' }