UNPKG

saven

Version:
57 lines (56 loc) 2.16 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const util_1 = require("../util"); const chain_1 = require("../util/chain"); const base_conf_1 = require("./base.conf"); function default_1(config) { const chain = base_conf_1.default(); const { alias = util_1.emptyObj, outputRoot = '', staticDirectory, dllDirectory = 'lib', dllEntry = { lib: ['nervjs', '@savenjs/saven-h5', '@savenjs/router', '@savenjs/components'] }, designWidth = 750, deviceRatio, enableSourceMap = false, styleLoaderOption, cssLoaderOption, lessLoaderOption, sassLoaderOption, stylusLoaderOption, fontUrlLoaderOption, imageUrlLoaderOption, mediaUrlLoaderOption, defineConstants = util_1.emptyObj, env = util_1.emptyObj, module = { postcss: util_1.emptyObj }, plugins } = config; const mode = 'production'; const minimizer = []; const isUglifyEnabled = (plugins.uglify && plugins.uglify.enable === false) ? false : true; if (isUglifyEnabled) { minimizer.push(chain_1.getUglifyPlugin([enableSourceMap, plugins.uglify ? plugins.uglify.config : {}])); } chain.merge({ mode, devtool: chain_1.getDevtool(enableSourceMap), entry: dllEntry, output: chain_1.getDllOutput({ outputRoot, dllDirectory }), resolve: { alias }, module: chain_1.getModule({ mode, staticDirectory, designWidth, deviceRatio, enableExtract: false, enableSourceMap, styleLoaderOption, cssLoaderOption, lessLoaderOption, sassLoaderOption, stylusLoaderOption, fontUrlLoaderOption, imageUrlLoaderOption, mediaUrlLoaderOption, module, plugins }), plugin: { definePlugin: chain_1.getDefinePlugin([chain_1.processEnvOption(env), defineConstants]), dllPlugin: chain_1.getDllPlugin(outputRoot, dllDirectory) }, optimization: { minimizer } }); return chain; } exports.default = default_1;