feat(@vant/cli): add external config for bundles (#9947)

This commit is contained in:
neverland
2021-11-26 15:28:53 +08:00
committed by GitHub
parent cfcc84ff25
commit 9e67b81288
4 changed files with 56 additions and 17 deletions
+12 -4
View File
@@ -1,9 +1,17 @@
import { join } from 'path';
import type { InlineConfig } from 'vite';
import { setBuildTarget } from '../common/index.js';
import { CWD, ES_DIR, getVantConfig, LIB_DIR } from '../common/constant.js';
import type { InlineConfig, LibraryFormats } from 'vite';
export function getViteConfigForPackage(minify: boolean): InlineConfig {
export function getViteConfigForPackage({
minify,
formats,
external,
}: {
minify: boolean;
formats: LibraryFormats[];
external: string[];
}): InlineConfig {
setBuildTarget('package');
const { name } = getVantConfig();
@@ -17,7 +25,7 @@ export function getViteConfigForPackage(minify: boolean): InlineConfig {
lib: {
name,
entry: join(ES_DIR, 'index.js'),
formats: ['es', 'cjs', 'umd'],
formats,
fileName: (format: string) => {
const suffix = format === 'umd' ? '' : `.${format}`;
return minify ? `${name}${suffix}.min.js` : `${name}${suffix}.js`;
@@ -26,7 +34,7 @@ export function getViteConfigForPackage(minify: boolean): InlineConfig {
// terser has better compression than esbuild
minify: minify ? 'terser' : false,
rollupOptions: {
external: ['vue'],
external,
output: {
dir: LIB_DIR,
exports: 'named',