UNPKG

saven

Version:
63 lines (62 loc) 2.55 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const path = require("path"); const util_1 = require("../util"); const chain_1 = require("../util/chain"); const base_conf_1 = require("./base.conf"); const emptyObj = {}; function default_1(config) { const chain = base_conf_1.default(); const { alias = emptyObj, entry = emptyObj, output = emptyObj, sourceRoot = '', outputRoot, publicPath, staticDirectory = 'static', chunkDirectory = 'chunk', designWidth = 750, deviceRatio, enableSourceMap = true, enableExtract = false, defineConstants = emptyObj, env = emptyObj, styleLoaderOption = emptyObj, cssLoaderOption = emptyObj, sassLoaderOption = emptyObj, lessLoaderOption = emptyObj, stylusLoaderOption = emptyObj, mediaUrlLoaderOption = emptyObj, fontUrlLoaderOption = emptyObj, imageUrlLoaderOption = emptyObj, miniCssExtractPluginOption = emptyObj, module = { postcss: emptyObj }, plugins } = config; const plugin = {}; if (enableExtract) { plugin.miniCssExtractPlugin = chain_1.getMiniCssExtractPlugin([{ filename: 'css/[name].css', chunkFilename: 'css/[id].css' }, miniCssExtractPluginOption]); } plugin.htmlWebpackPlugin = chain_1.getHtmlWebpackPlugin([{ filename: 'index.html', template: path.join(util_1.appPath, sourceRoot, 'index.html') }]); plugin.definePlugin = chain_1.getDefinePlugin([chain_1.processEnvOption(env), defineConstants]); plugin.hotModuleReplacementPlugin = chain_1.getHotModuleReplacementPlugin(); const mode = 'development'; chain.merge({ mode, devtool: chain_1.getDevtool([enableSourceMap]), entry: chain_1.getEntry(entry), output: chain_1.getOutput([{ outputRoot, publicPath, chunkDirectory }, output]), resolve: { alias }, module: chain_1.getModule({ mode, designWidth, deviceRatio, enableExtract, enableSourceMap, styleLoaderOption, cssLoaderOption, lessLoaderOption, sassLoaderOption, stylusLoaderOption, fontUrlLoaderOption, imageUrlLoaderOption, mediaUrlLoaderOption, module, plugins, staticDirectory }), plugin, optimization: { noEmitOnErrors: true } }); return chain; } exports.default = default_1;