sucrase
swc-node
Our great sponsors
sucrase | swc-node | |
---|---|---|
26 | 6 | |
5,578 | 1,605 | |
- | 1.8% | |
6.1 | 7.6 | |
about 2 months ago | 9 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.
sucrase
-
Show HN: JSX in Browser with Sucrase
Thanks. As for the code compilation, that can be tested and seen in https://sucrase.io/
The demo page is only to show how we can transpile JSX in browsers.
-
Created a simple online JavaScript Playground, it's a place for you to try out your code and ideas.
Thanks u/OutlandishnessKey953, the playground built with React, Docusaurus(https://docusaurus.io/), CodeMirror(https://codemirror.net/), Sucrase(https://sucrase.io/), etc.
-
The TypeScript compiler is now implemented internally with modules
Hi, Sucrase author here.
To be clear, the benchmark in the README does not allow JIT warm-up. The Sucrase numbers would be better if it did. From testing just now (add `warmUp: true` to `benchmarkJest`), Sucrase is a little over 3x faster than swc if you allow warm-up, but it seemed unfair to disregard warm-up for the comparison in the README.
It's certainly fair to debate whether 360k lines of code is a realistic codebase size for the benchmark; the higher-scale the test case, the better Sucrase looks.
> worse it disables esbuild and swc's multi-threading
At some point I'm hoping to update the README benchmark to run all tools in parallel, which should be more convincing despite the added variability: https://github.com/alangpierce/sucrase/issues/730 . In an ideal environment, the results are pretty much the same as a per-core benchmark, but I do expect that Node's parallelism overhead and the JIT warm-up cost across many cores would make Sucrase less competitive than the current numbers.
-
Should i switch to Typescript?
First, npm i -D sucrase to install sucrase. Now you can do node -r sucrase/register ./index.ts to run TypeScript code directly with Node.
-
š Building your own Javascript Library with bare minimum
As you might know there are a lot of Javascript bundlers out there, such as webpack, sucrase, parcel, rollup and etc. Bear in mind, not because they have thousands of stars on Github that means they're the best. sometimes new libs are as good as the popular ones but they're still building up their image/popularity in the community. what I bring today is a not sooooo, popular JS bundler called esbuild.
-
Five coding interview questions I hate
Sucrase JS was 2x the speed of esBuild and 50% faster than SWC last I checked.
-
Iām Porting the TypeScript Type Checker Tsc to Go
Webpack does way more than esbuild, including running a typechecking compiler instead of just transpiling, running compilers able to downlevel emit to ES5 and providing a deep plugin architecture allowing you to hook into any bit you like. But yes, it hasn't been designed with speed in mind - it has been designed with maximum extensibility instead. Its the same reason why Babel is slow compared to sucrase (written in JS, currently faster than SWC and esbuild but doing somewhat less - https://github.com/alangpierce/sucrase)
tsc has in fact been designed with speed in mind (I've been following the project since before it ended up on GitHub). Going beyond 1 order of magnitude performance improvement is highly unlikely.
- Sucrase: A fast, pure-JavaScript transpiler for JavaScript/TypeScript
- GitHub - alangpierce/sucrase: Super-fast alternative to Babel for when you can target modern JS runtimes
- Sucrase: A fast JavaScript/TypeScript transpiler written in JavaScript
swc-node
-
Thoughts about Deno?
swc-node is much faster. No typechecking but you can have that running as a separate process with typescript in watch mode. Basically never have to wait for compiles or typechecking checking then.
-
Node + SWC make a lightning fast typescript runtime
fwiw swc has an official loader: https://github.com/swc-project/swc-node
- Node.js 18.x runtime now available in AWS Lambda
-
Next.js 12 - Rust Compiler, React 18 and Native ES Modules Support, React Server Components
I actually just switched my team's app over to use https://github.com/Brooooooklyn/swc-node for our Jest tests, but if we're going to upgrade to Next 12 it'd be nice to reuse whatever's included there.
-
Next.js 12
I actually upgraded my team's Jest config to use https://github.com/Brooooooklyn/swc-node a few weeks ago. However, our Jenkins CI agents run RHEL7, and neither of the Linux binary targets would run. The `x64-gnu` binary needed a `GLIBC_2_23` symbol when only 2.18 was available, and the `x64-musl` binary had no `musl-libc` on the machine. I don't own the Jenkins agents, so I couldn't install other deps myself.
I ended up building `musl-libc` from source on another RHEL7 agent, committed the `.so` to our repo, and added that to the `LD_LIBRARY_PATH` in our Jenkinsfile, and actually got that working.
I did see some mentions that Rust could build to target an older GLibc ( https://kobzol.github.io/rust/ci/2021/05/07/building-rust-bi... ), so I'm curious if Next is going to use copies of SWC built that way for better compat or if it will require more workarounds on my part.
I'm very curious if the Next SWC binaries
- Build Speed Improvements
What are some alternatives?
swc - Rust-based platform for the Web
ts-node - TypeScript execution and REPL for node.js
vike - šØ Like Next.js / Nuxt but as do-one-thing-do-it-well Vite plugin.
esbuild - An extremely fast bundler for the web
fork-ts-checker-webpack-plugin - Webpack plugin that runs typescript type checker on a separate process.
nextjs-tailwind-ionic-capacitor-starter - A starting point for building an iOS, Android, and Progressive Web App with Tailwind CSS, React w/ Next.js, Ionic Framework, and Capacitor
TypeScript - TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
entr - Run arbitrary commands when files change
Next.js - The React Framework