@sanpjs/bundler-webpack
Version:
@sanpjs/bundler-webpack
47 lines • 1.7 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const path_1 = __importDefault(require("path"));
const lodash_uniqBy_1 = __importDefault(require("lodash.uniqBy"));
exports.default = (context, args) => {
const { build, server, pages } = context.config;
const { port = server.port, hot = server.hot, host = server.host, https = server.https, open = server.open } = args;
// 监听html的修改触发热更新
// @ts-ignore
const watchFiles = (0, lodash_uniqBy_1.default)(pages.map((page) => path_1.default.dirname(context.getLayout(page.name))));
// 从 rawOptions 和args 拼一份config出来
let devServerConfig = {
port,
host,
https,
hot: hot || false,
headers: server.headers,
static: {
directory: context.resolver.resolveEntry('public', false),
publicPath: build.publicPath,
watch: true,
...server.static
},
watchFiles,
open,
devMiddleware: {
writeToDisk: server?.devMiddleware?.writeToDisk,
serverSideRender: context.isSsr
}
};
// 触发server finalize,得到最终devServerConfig
if (typeof server.finalize === 'function') {
const c = server.finalize(devServerConfig, context);
if (c) {
devServerConfig = c;
}
}
return {
devtool: 'eval-cheap-module-source-map',
cache: build.cache,
devServer: devServerConfig
};
};
//# sourceMappingURL=development.js.map