mirror of
https://github.com/youzan/vant.git
synced 2025-10-17 00:14:18 +00:00
feat(@vant/cli): support custom vite config (#9738)
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
import { get } from 'lodash';
|
||||
import { sep, join } from 'path';
|
||||
import {
|
||||
lstatSync,
|
||||
@@ -7,6 +8,7 @@ import {
|
||||
outputFileSync,
|
||||
} from 'fs-extra';
|
||||
import { SRC_DIR, getVantConfig } from './constant';
|
||||
import type { InlineConfig } from 'vite';
|
||||
|
||||
export const EXT_REGEXP = /\.\w+$/;
|
||||
export const SFC_REGEXP = /\.(vue)$/;
|
||||
@@ -134,4 +136,14 @@ export function smartOutputFile(filePath: string, content: string) {
|
||||
outputFileSync(filePath, content);
|
||||
}
|
||||
|
||||
export function mergeCustomViteConfig(config: InlineConfig) {
|
||||
const vantConfig = getVantConfig();
|
||||
const configureVite = get(vantConfig, 'build.configureVite');
|
||||
|
||||
if (configureVite) {
|
||||
return configureVite(config);
|
||||
}
|
||||
return config;
|
||||
}
|
||||
|
||||
export { getVantConfig };
|
||||
|
@@ -1,6 +1,8 @@
|
||||
import { build } from 'vite';
|
||||
import { mergeCustomViteConfig } from '../common';
|
||||
import { getViteConfigForPackage } from '../config/vite.package';
|
||||
|
||||
export async function compilePackage(minify: boolean) {
|
||||
return build(getViteConfigForPackage(minify));
|
||||
const config = mergeCustomViteConfig(getViteConfigForPackage(minify));
|
||||
return build(config);
|
||||
}
|
||||
|
@@ -4,7 +4,7 @@ import {
|
||||
getViteConfigForSiteDev,
|
||||
getViteConfigForSiteProd,
|
||||
} from '../config/vite.site';
|
||||
import { replaceExt } from '../common';
|
||||
import { mergeCustomViteConfig, replaceExt } from '../common';
|
||||
import { CSS_LANG } from '../common/css';
|
||||
import { genPackageEntry } from './gen-package-entry';
|
||||
import { genPackageStyle } from './gen-package-style';
|
||||
@@ -37,9 +37,11 @@ export async function genSiteEntry(): Promise<void> {
|
||||
export async function compileSite(production = false) {
|
||||
await genSiteEntry();
|
||||
if (production) {
|
||||
await build(getViteConfigForSiteProd());
|
||||
const config = mergeCustomViteConfig(getViteConfigForSiteProd());
|
||||
await build(config);
|
||||
} else {
|
||||
const server = await createServer(getViteConfigForSiteDev());
|
||||
const config = mergeCustomViteConfig(getViteConfigForSiteDev());
|
||||
const server = await createServer(config);
|
||||
await server.listen();
|
||||
|
||||
const { version } = require('vite/package.json');
|
||||
|
@@ -92,7 +92,7 @@ function getHTMLMeta(vantConfig: any) {
|
||||
}
|
||||
|
||||
export function getViteConfigForSiteDev(): InlineConfig {
|
||||
setBuildTarget('package');
|
||||
setBuildTarget('site');
|
||||
|
||||
const vantConfig = getVantConfig();
|
||||
const siteConfig = getSiteConfig(vantConfig);
|
||||
|
Reference in New Issue
Block a user