UNPKG

@mypaas/hcm-cli

Version:

Vant Cli 是一个 Vue 组件库构建工具,通过 Vant Cli 可以快速搭建一套功能完备的 Vue 组件库。

86 lines (85 loc) 3.55 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.getSiteDevConfig = exports.getSiteDevBaseConfig = void 0; const webpack_merge_1 = require("webpack-merge"); const webpackbar_1 = __importDefault(require("webpackbar")); const html_webpack_plugin_1 = __importDefault(require("html-webpack-plugin")); const lodash_1 = require("lodash"); const path_1 = require("path"); const webpack_base_1 = require("./webpack.base"); const common_1 = require("../common"); const vant_cli_site_plugin_1 = require("../compiler/vant-cli-site-plugin"); const constant_1 = require("../common/constant"); function getSiteDevBaseConfig() { const vantConfig = common_1.getVantConfig(); const baiduAnalytics = lodash_1.get(vantConfig, 'site.baiduAnalytics'); function getSiteConfig() { const siteConfig = vantConfig.site; if (siteConfig.locales) { return siteConfig.locales[siteConfig.defaultLang || 'en-US']; } return siteConfig; } function getTitle(config) { let { title } = config; if (config.description) { title += ` - ${config.description}`; } return title; } const siteConfig = getSiteConfig(); const title = getTitle(siteConfig); const { htmlPluginOptions } = vantConfig.site; return webpack_merge_1.merge(webpack_base_1.baseConfig, { entry: { 'site-desktop': [path_1.join(__dirname, '../../site/desktop/main.js')], 'site-mobile': [path_1.join(__dirname, '../../site/mobile/main.js')], }, devServer: { port: 8080, quiet: true, host: '0.0.0.0', stats: 'errors-only', publicPath: '/', disableHostCheck: true, }, resolve: { alias: { 'site-mobile-shared': constant_1.SITE_MODILE_SHARED_FILE, 'site-desktop-shared': constant_1.SITE_DESKTOP_SHARED_FILE, }, }, output: { chunkFilename: '[name].js', }, optimization: { splitChunks: { cacheGroups: { chunks: { chunks: 'all', minChunks: 2, minSize: 0, name: 'chunks', }, }, }, }, plugins: [ new webpackbar_1.default({ name: 'HCM Cli', color: constant_1.GREEN, }), new vant_cli_site_plugin_1.VantCliSitePlugin(), new html_webpack_plugin_1.default(Object.assign({ title, logo: siteConfig.logo, description: siteConfig.description, chunks: ['chunks', 'site-desktop'], template: path_1.join(__dirname, '../../site/desktop/index.html'), filename: 'index.html', baiduAnalytics }, htmlPluginOptions)), new html_webpack_plugin_1.default(Object.assign({ title, logo: siteConfig.logo, description: siteConfig.description, chunks: ['chunks', 'site-mobile'], template: path_1.join(__dirname, '../../site/mobile/index.html'), filename: 'mobile.html', baiduAnalytics }, htmlPluginOptions)), ], }); } exports.getSiteDevBaseConfig = getSiteDevBaseConfig; function getSiteDevConfig() { return common_1.getWebpackConfig(getSiteDevBaseConfig()); } exports.getSiteDevConfig = getSiteDevConfig;