UNPKG

@aliretail/vite-config-xixi

Version:

瓴羊客服vite配置脚手架

73 lines (72 loc) 2.89 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.defineConfig = void 0; const path = require("path"); const _ = require("lodash"); const vite_1 = require("vite"); const util_1 = require("./util"); const util_2 = require("./util"); function defineConfig(config) { return (0, util_1.tapConfig)(config ?? {}, async (userConfig, { command, mode }) => { Object.assign(process.env, (0, vite_1.loadEnv)(mode, userConfig.root || process.cwd(), '')); const pkg = await (0, util_2.readPackage)(); const commonConfig = (0, util_1.mergeConfig)({ build: { minify: 'terser', terserOptions: { keep_classnames: true, }, }, esbuild: userConfig?.esbuild ?? { keepNames: true, jsxFactory: '_React.createElement', jsxFragment: '_React.Fragment', jsxInject: `import * as _React from 'react'`, }, optimizeDeps: { esbuildOptions: { keepNames: true, }, }, resolve: { alias: [ { find: /^~(.*)/, replacement: `${path.join(process.cwd(), 'node_modules')}/$1`, }, { find: /^@\/(.*)/, replacement: `${path.join(process.cwd(), 'src')}/$1`, }, ], mainFields: ['browser', 'module', 'jsnext:main', 'jsnext', 'main'], }, css: { modules: { localsConvention: 'camelCaseOnly', generateScopedName(name, filename) { return [ (0, util_1.getShortPkgName)(pkg.name), path .relative(path.join(process.cwd(), 'src'), filename) .replace(/\?.*$/g, '') .replace('.module.less', '') .replace('/index', ''), name, ].map(_.kebabCase).join('_'); }, }, preprocessorOptions: { less: {}, }, }, }, userConfig); if (!['serve', 'build'].includes(command)) return userConfig; const config = (await (command === 'serve' ? Promise.resolve().then(() => require('./config/serve')) : Promise.resolve().then(() => require('./config/build')))).default; return (0, util_1.mergeConfig)(await config(userConfig), commonConfig); }); } exports.default = defineConfig; exports.defineConfig = defineConfig;