diff --git a/.changeset/two-heads-remain.md b/.changeset/two-heads-remain.md new file mode 100644 index 0000000..09ea5b2 --- /dev/null +++ b/.changeset/two-heads-remain.md @@ -0,0 +1,7 @@ +--- +"@naverpay/pite": minor +--- + +[공통] viteConfig 를 받을 수 있도록 수정하고, 기존 옵션들은 deprecated 처리합니다 + +PR: [[공통] viteConfig 를 받을 수 있도록 수정하고, 기존 옵션들은 deprecated 처리합니다](https://github.com/NaverPayDev/pite/pull/91) diff --git a/src/index.ts b/src/index.ts index 2006322..ba04779 100644 --- a/src/index.ts +++ b/src/index.ts @@ -68,14 +68,24 @@ export interface ViteConfigProps { * * @see https://vite.dev/config/build-options * @see https://ko.vite.dev/config/build-options + * @deprecated Use `config.build` instead */ options?: BuildOptions /** * Vite plugins * @see https://vite.dev/guide/using-plugins + * @deprecated Use `config.plugins` instead */ vitePlugins?: UserConfig['plugins'] + + /** + * Additional Vite config options + * (e.g., build, plugins, assetsInclude, define, resolve, etc.) + * + * @see https://vite.dev/config/ + */ + config?: UserConfig } export function createViteConfig({ @@ -92,11 +102,17 @@ export function createViteConfig({ skipRequiredPolyfillCheck = [], vitePlugins = [], options, + config, }: ViteConfigProps) { const browserslistConfig = getBrowserslistConfig(cwd) const externalDeps = getExternalDependencies(cwd) - const {lib: inputLib, rollupOptions: inputRollupOptions, ...restOptions} = options || {lib: {}, rollupOptions: {}} + const mergedBuildOptions = {...options, ...(config?.build || {})} + const { + lib: inputLib, + rollupOptions: inputRollupOptions, + ...restOptions + } = mergedBuildOptions || {lib: {}, rollupOptions: {}} const inputExternal = inputRollupOptions?.external || ([] as string[]) const external = @@ -193,8 +209,9 @@ export function createViteConfig({ const plugins: UserConfig['plugins'] = [ vitePluginTsup({formats, entry, outDir: {esm: esmDir, cjs: cjsDir}}), - ...vitePlugins, + ...(vitePlugins || []), + ...(config?.plugins || []), ] - return defineConfig({build, plugins}) + return defineConfig({...config, build, plugins}) }