tsc-esm-fix
tsx
tsc-esm-fix | tsx | |
---|---|---|
2 | 31 | |
75 | 10,235 | |
- | 2.2% | |
7.8 | 9.0 | |
29 days ago | 21 days ago | |
TypeScript | TypeScript | |
MIT License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
tsc-esm-fix
-
TypeScript is now officially 10 years old
Probably because it compiles them to a pre-standard ES5-compatible implementation based on good ol' `Foo.prototype`. And since they've already handled them one way, they can't become spec-compliant without breaking backwards compatibility.
The other place where this shines through particularly egregiously is the support of ESM static import/export. Everybody's build tools been compiling that back down to CJS so hard that Node.js 16+ introduced intentional incompatibilities between CJS and ESM modes just to get people to finally switch to the standards-compliant module system. So you end up in a situation where the library is written in TypeScript with ESM syntax but the only available browser build is a CJS blob which completely defeats the main touted benefit of static imports/exports, namely dead code elimination...
So you decide what the hell, let's switch TSC to ESM and moduleResolution node16, and end up having to use something like https://github.com/antongolub/tsc-esm-fix because the only allowed fix for TSC doing the wrong thing is at the completely wrong level - https://www.typescriptlang.org/docs/handbook/esm-node.html - if you don't see what's wrong with that, you're one of today's lucky 10000...
- TS and ts-jest meet “type”: “module”
tsx
-
How to Build a GenAI Bluesky Bot with Langflow, TypeScript,and Node.js
Add the following scripts to package.json, too. The build script will compile the TypeScript we're going to write into JavaScript, and the start script will run that JavaScript. Finally, to make development easier, the dev script will use tsx to run the TypeScript directly and restart when changes are detected.
-
Creating a TypeScript CLI for Your Monorepo
Using commander.js and tsx, we can create executable programs written in TypeScript that run from the command line like any other CLI tool.
-
NextJS + Drizzle -- 8 Things I Learned Spinning up a New Project
To test and iterate on backend code, I've started calling some modules (like OpenAI researches) from scripts I execute via the terminal. Copious console.debug and console.warn statements make this a kinda effective way to debug without having to craft a frontend. To execute these scripts, I use TSX resulting in commands like this one that extracts events from history books:
-
Setting up Subpath Import Aliases in a TypeScript Project
For other tools, you should check their documentation on custom conditions support. I've tried to run my project with tsx. As it supports all Node.js flags, I've just provided custom condition via -C flag:
- TypeScript Execute (TSX)
-
Effortless API Testing: Node.js Techniques for Next.js Route handlers
Luckily, this is a very common thing and Tsx, a can help us with this. We simply have to import this module and we'll be able to execute Typescript code with Node.js:
-
Using TypeScript in Node.js projects
Next, we need to set up a development script that will watch for changes in our TypeScript files and recompile them. Personally, I like to use tsx, as it provides a much faster development experience compared to the built-in TypeScript watcher or ts-node. First, install tsx:
-
Making Eleventy Data Traceable with TSX and Zod
At this point, you will have a setup which relies on tsx to understand TypeScript, and jsx-async-runtime to understand JSX/TSX templates.
-
Finally, a guide for Node.js and TypeScript and ESM that works
I really enjoy frontend/node/typescript development. I roll my eyes whenever the HN-types complain about CSS or frontend development being a hellhole. Mostly the comments I see seem ignorant or impatient ("Why doesn't this thing work without be bothering to learn it?")
However, the intersection of typescript, nodejs, and ES modules is consistently the most frustrating experience I ever have. Trying to figure out which magic incantation of tsconfig/esbuild/tsc/node options will let me just write code and run it is a fools errand. You might figure something out, and then you try to use Jest and then you descend into madness again.
The biggest tip I can give people is to ditch ts-node and just use (the awkwardly named) tsx https://github.com/privatenumber/tsx, which pretty much just "mostly works" for running Typescript during dev for node.
The problem mostly seems to stem for all the stakeholders being pretty dogmatic to whatever their goals are, rather than the pragmatic option of just meeting people where they are. I really wish the Node, Typescript, Deno/Bun, and maybe some bundler people would come together and figure out how to make this easier for people.
-
ERDIA: TypeORM entity specification documentation tool
If your TypeORM entity is written in TypeScript, you have to run ERDIA using ts-node or tsx as follows.
What are some alternatives?
ts-jest - A Jest transformer with source map support that lets you use Jest to test projects written in TypeScript.
ts-node - TypeScript execution and REPL for node.js
ts2esm - Transforms CommonJS projects into ESM.
ts-runtime-comparison - Comparison of Node.js TypeScript runtimes
node-win32-api - win32 api
esno - Alias to `tsx`
react-pair - 🖇️ Util to help with the paired hook pattern
esbuild-runner - ⚡️ Super-fast on-the-fly transpilation of modern JS, TypeScript and JSX using esbuild
proposal-type-annotations - ECMAScript proposal for type syntax that is erased - Stage 1
esbuild-node-tsc - Build your Typescript Node.js projects using blazing fast esbuild
TypeScript - TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
cnc4me - Monorepo for all the fun tools made for machinists and programmers