UNPKG

webpack-genius

Version:

**For chinese developers:** you'd better add taobao mirror before everything start. Or you may fail to install. ```bash yarn config set registry http://registry.npm.taobao.org ```

89 lines (88 loc) 3.32 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); require("v8-compile-cache"); require("./misc/module"); var WebpackGenius_1 = require("./WebpackGenius"); var output_1 = require("./libraries/output"); var stats_1 = require("./libraries/stats"); var mode_1 = require("./libraries/mode"); var resolve_1 = require("./libraries/resolve"); var devtool_1 = require("./libraries/devtool"); var devserver_1 = require("./libraries/devserver"); var optimization_1 = require("./libraries/optimization"); var entry_1 = require("./libraries/entry"); var template_1 = require("./libraries/template"); var webpackGenius = function (port, fn) { if (port === void 0) { port = 3000; } return function (env) { var genius = new WebpackGenius_1.WebpackGenius(env, port); genius .target('web') .entry(entry_1.getEntry(genius)) .devtool(devtool_1.setDevtool) .mode(mode_1.setMode) .output(output_1.setOutput) .stats(stats_1.setStats) .optimization(optimization_1.setOptimization) .resolve(resolve_1.setResolve) .devServer(devserver_1.setDevServer) .miniCss(genius.isBuild()); genius .pluginClean(function (plugin) { plugin.enable(genius.isBuild()); }) .pluginErrorOverlay(function (plugin) { plugin.enable(genius.isHot()); }) .pluginHtml(function (plugin) { var template = template_1.getHtmlTemplate(); if (template) { plugin.setTemplate(template); } }) .pluginHotModuleReplace(function (plugin) { plugin.enable(genius.isHot()); }) .pluginHashedModule(function (plugin) { plugin.enable(genius.isBuild()); }) .pluginReactRefresh(function (plugin) { plugin.enable(genius.isHot()); }) .pluginProgressBar(function (plugin) { plugin.enable(genius.isBuild()); }) .pluginPreload(function (plugin) { plugin .usePrefetch() .enable(genius.isBuild()); }) .pluginAntdDayJs(function (plugin) { plugin.enable(genius.hasPackage('antd') && genius.hasPackage('dayjs')); }) .pluginGzip(function (plugin) { // You can reopen it by `plugin.enable(genius.isBuild());` plugin.enable(false); }); genius .ruleTsx(function (rule) { rule.enable(genius.hasPackage('typescript')); }) .ruleJsx() .ruleCss() .ruleCssNodeModules() .ruleScss() .ruleLess() .ruleAntd(function (rule) { rule.enable(['antd', 'antd-mobile'].some(function (item) { return genius.hasPackage(item); })); }) .ruleAsset() .ruleHtml() .ruleJson5(); fn === null || fn === void 0 ? void 0 : fn(genius); genius.optimization(optimization_1.setOptimizationAfter.bind(global, genius.getUglifyConfig())); genius.devServer(devserver_1.setDevServerAfter); return genius.collect(); }; }; exports.default = webpackGenius;