Skip to content

chore(build): Update build system#17

Merged
donmccurdy merged 8 commits intomasterfrom
chore/update-build-system
Jan 22, 2025
Merged

chore(build): Update build system#17
donmccurdy merged 8 commits intomasterfrom
chore/update-build-system

Conversation

@donmccurdy
Copy link
Copy Markdown
Contributor

@donmccurdy donmccurdy commented Jan 21, 2025

Dependencies on this repository have gotten stale, with unsupported Node.js and a babel+webpack build with a lot of moving pieces. I ran into trouble trying to make a PR on the repository because ts-node doesn't report useful information for errors in test files, and the old Node.js requirement made updating to a better test runner challenging.

Changes:

  • update local development to Node.js v20
  • update minimum engine to Node.js v18
  • update dependency manager to Yarn v4
  • replace ts-node with tsx
  • replace babel+webpack with microbundle
  • remove old config files
  • update CI and create npm publish job on GitHub Actions

Microbundle is optional here, but greatly simplifies things and builds faster. I've considered Vite, but I don't think Vite's "Library Mode" is ready for prime time yet, see CartoDB/carto-api-client#60... it's much better as an application build system, not a library build system, today. The main downside of Microbundle, from my perspective, is the long tail of transient dependencies (as seen in yarn.lock).

A future PR should probably replace both [tape, tsx] with just vitest.

Copy link
Copy Markdown

@padawannn padawannn left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@donmccurdy donmccurdy merged commit 08d7c55 into master Jan 22, 2025
@donmccurdy donmccurdy deleted the chore/update-build-system branch January 22, 2025 21:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants