element-plus/build/utils/rollup.ts
三咲智子 4e99d0b5ba
build!: simplify build & support esm import (#4018)
* 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
2021-10-25 17:07:48 +08:00

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)))
}