Some checks failed
CI / Test (ubuntu-latest) (push) Has been cancelled
CI / Test (windows-latest) (push) Has been cancelled
CI / Lint (ubuntu-latest) (push) Has been cancelled
CI / Lint (windows-latest) (push) Has been cancelled
CI / Check (ubuntu-latest) (push) Has been cancelled
CI / Check (windows-latest) (push) Has been cancelled
CodeQL / Analyze (javascript-typescript) (push) Has been cancelled
Deploy Website on push / Deploy Push Playground Ftp (push) Has been cancelled
Deploy Website on push / Deploy Push Docs Ftp (push) Has been cancelled
Deploy Website on push / Deploy Push Antd Ftp (push) Has been cancelled
Deploy Website on push / Deploy Push Element Ftp (push) Has been cancelled
Deploy Website on push / Deploy Push Naive Ftp (push) Has been cancelled
Release Drafter / update_release_draft (push) Has been cancelled
CI / CI OK (push) Has been cancelled
Deploy Website on push / Rerun on failure (push) Has been cancelled
Lock Threads / action (push) Has been cancelled
Issue Close Require / close-issues (push) Has been cancelled
Close stale issues / stale (push) Has been cancelled
38 lines
963 B
TypeScript
38 lines
963 B
TypeScript
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 (projectType === '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 };
|