feat(@vant/cli): support custom vite config (#9738)

This commit is contained in:
neverland
2021-10-27 14:46:37 +08:00
committed by GitHub
parent 4778b07d40
commit 8585842712
5 changed files with 63 additions and 5 deletions

View File

@@ -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 };

View File

@@ -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);
}

View File

@@ -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');

View File

@@ -92,7 +92,7 @@ function getHTMLMeta(vantConfig: any) {
}
export function getViteConfigForSiteDev(): InlineConfig {
setBuildTarget('package');
setBuildTarget('site');
const vantConfig = getVantConfig();
const siteConfig = getSiteConfig(vantConfig);