kef-builder-buffet
Version:
buffet-builder构建工具
64 lines (55 loc) • 1.92 kB
JavaScript
;
const path = require("path");
const fs = require("fs");
const webpack = require("webpack");
const webpackDevMiddleware = require("webpack-dev-middleware");
const webpackDevHotMiddleware = require("webpack-hot-middleware");
const webpackDevConfig = require("./webpack/webpack.dev.config");
const debug = require('debug')('buffet');
// 利用闭包特性,在不同流程中传递实例
let webpackMiddleware;
let webpackHotMiddleware;
let compiler;
module.exports = function (app, opts) {
debug('buffet opts is %o', opts);
let webpackConfig = webpackDevConfig;
let param = {
// 它用于决定 webpack 打包编译后的文件,要存放在内存中的哪一个虚拟路径,
// 并提供一个 SERVER,将路径和文件映射起来(即使它们都是虚拟的,但依旧可请求的到)。
// 用于标记从内存的哪个路径去存放和查找资源,
publicPath: webpackConfig.output.publicPath,
noInfo: false,
quiet: false,
// https://webpack.js.org/configuration/stats/#stats
stats: {
assets: true,
colors: true,
publicPath: true,
version: true,
hash: false,
timings: false,
chunks: false,
children: false,
chunkOrigins: false,
chunkModules: false,
depth: false,
modules: false,
// maxModules: 10,
}
};
let paramHot = {
// log: console.log,
path: "/__webpack_hmr",
// 多长时间将心跳更新发送到客户端以保持连接的活动
heartbeat: 2000
}
// 生成webpack配置文件
compiler = webpack(webpackConfig);
webpackHotMiddleware = webpackDevHotMiddleware(compiler, paramHot);
webpackMiddleware = webpackDevMiddleware(compiler, param);
app.use(require('express-devtool')({
mockDir: path.join(process.cwd(), 'mock') //定义mock目录
}));
app.use(webpackMiddleware);
app.use(webpackHotMiddleware);
};