mirror of
https://github.com/element-plus/element-plus.git
synced 2025-01-24 11:05:17 +08:00
4e99d0b5ba
* build!: simplify build & support native esm import * build: refactor build * refactor: reorganize files * refactor: refactor build * build: improve perf * fix: scripts * build: add rollup-plugin-filesize * chore: scripts ignore no-console * build: disable tree-shaking * build: improve code * build: add sourcemap * build: add banner * refactor: remove annotation * build!: improve esm exports (#3871) * build: improve esm import * refactor: change mjs for esm version * chore: improve exports map * fix: add sideEffects * refactor: improve alias * build: upgrade dependencies
24 lines
703 B
TypeScript
24 lines
703 B
TypeScript
import { epPackage } from './paths'
|
|
import { getPackageDependencies } from './pkg'
|
|
|
|
import type { OutputOptions, RollupBuild } from 'rollup'
|
|
|
|
export const generateExternal = async (options: { full: boolean }) => {
|
|
return (id: string) => {
|
|
const packages: string[] = ['vue']
|
|
if (!options.full) {
|
|
packages.push('element-plus/theme-chalk')
|
|
// dependencies
|
|
packages.push('@vue', ...getPackageDependencies(epPackage))
|
|
}
|
|
|
|
return [...new Set(packages)].some(
|
|
(pkg) => id === pkg || id.startsWith(`${pkg}/`)
|
|
)
|
|
}
|
|
}
|
|
|
|
export function writeBundles(bundle: RollupBuild, options: OutputOptions[]) {
|
|
return Promise.all(options.map((option) => bundle.write(option)))
|
|
}
|