dev.js 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. // @ts-check
  2. import { watch } from 'rolldown'
  3. import { createConfigsForPackage } from './create-rolldown-config.js'
  4. import { parseArgs } from 'node:util'
  5. const {
  6. values: { format: rawFormat, prod, inline: inlineDeps },
  7. positionals,
  8. } = parseArgs({
  9. allowPositionals: true,
  10. options: {
  11. format: {
  12. type: 'string',
  13. short: 'f',
  14. default: 'global',
  15. },
  16. prod: {
  17. type: 'boolean',
  18. short: 'p',
  19. default: false,
  20. },
  21. inline: {
  22. type: 'boolean',
  23. short: 'i',
  24. default: false,
  25. },
  26. },
  27. })
  28. const format = rawFormat || 'global'
  29. const target = positionals.length ? positionals[0] : 'vue'
  30. const [config, prodConfig] = createConfigsForPackage({
  31. target,
  32. commit: 'dev',
  33. // @ts-expect-error
  34. formats: [format],
  35. devOnly: !prod,
  36. sourceMap: true,
  37. localDev: true,
  38. inlineDeps,
  39. })
  40. const configToUse = prod ? prodConfig : config
  41. // @ts-expect-error
  42. console.log(`watching: ${configToUse.output.file}`)
  43. watch(configToUse).on('event', event => {
  44. if (event.code === 'BUNDLE_END') {
  45. // @ts-expect-error
  46. console.log(`rebuilt ${configToUse.output.file} in ${event.duration}ms`)
  47. }
  48. })