build-info.ts 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. import path from 'path'
  2. import { PKG_NAME } from '@element-plus/build-constants'
  3. import { epOutput } from '@element-plus/build-utils'
  4. import type { ModuleFormat } from 'rollup'
  5. export const modules = ['esm', 'cjs'] as const
  6. export type Module = typeof modules[number]
  7. export interface BuildInfo {
  8. module: 'ESNext' | 'CommonJS'
  9. format: ModuleFormat
  10. ext: 'mjs' | 'cjs' | 'js'
  11. output: {
  12. /** e.g: `es` */
  13. name: string
  14. /** e.g: `dist/element-plus/es` */
  15. path: string
  16. }
  17. bundle: {
  18. /** e.g: `element-plus/es` */
  19. path: string
  20. }
  21. }
  22. export const buildConfig: Record<Module, BuildInfo> = {
  23. esm: {
  24. module: 'ESNext',
  25. format: 'esm',
  26. ext: 'mjs',
  27. output: {
  28. name: 'es',
  29. path: path.resolve(epOutput, 'es'),
  30. },
  31. bundle: {
  32. path: `${PKG_NAME}/es`,
  33. },
  34. },
  35. cjs: {
  36. module: 'CommonJS',
  37. format: 'cjs',
  38. ext: 'js',
  39. output: {
  40. name: 'lib',
  41. path: path.resolve(epOutput, 'lib'),
  42. },
  43. bundle: {
  44. path: `${PKG_NAME}/lib`,
  45. },
  46. },
  47. }
  48. export const buildConfigEntries = Object.entries(
  49. buildConfig
  50. ) as BuildConfigEntries
  51. export type BuildConfig = typeof buildConfig
  52. export type BuildConfigEntries = [Module, BuildInfo][]
  53. export const target = 'es2018'