12345678910111213141516171819202122232425262728293031323334353637 |
- import type { DefineConfig } from '../typing';
- import { existsSync } from 'node:fs';
- import { join } from 'node:path';
- import { defineApplicationConfig } from './application';
- import { defineLibraryConfig } from './library';
- export * from './application';
- export * from './library';
- function defineConfig(
- userConfigPromise?: DefineConfig,
- type: 'application' | 'auto' | 'library' = 'auto',
- ) {
- let projectType = type;
- // 根据包是否存在 index.html,自动判断类型
- if (type === 'auto') {
- const htmlPath = join(process.cwd(), 'index.html');
- projectType = existsSync(htmlPath) ? 'application' : 'library';
- }
- switch (projectType) {
- case 'application': {
- return defineApplicationConfig(userConfigPromise);
- }
- case 'library': {
- return defineLibraryConfig(userConfigPromise);
- }
- default: {
- throw new Error(`Unsupported project type: ${projectType}`);
- }
- }
- }
- export { defineConfig };
|