sucrase
Babel (Formerly 6to5)
Our great sponsors
sucrase | Babel (Formerly 6to5) | |
---|---|---|
26 | 58 | |
5,583 | 42,901 | |
- | 0.3% | |
6.1 | 9.7 | |
2 months ago | 6 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
Babel (Formerly 6to5)
-
What is an Abstract Syntax Tree in Programming?
GitHub | Website
-
Mastering Jest Configuration for React TypeScript Projects with Vite: A Step-by-Step Guide
node 'node_modules/.bin/jest' '/Users/satparkash/code/test-app/src/A pp.test.tsx' -t 'App' FAIL src/App.test.tsx ā Test suite failed to run SyntaxError: /Users/satparkash/code/test-app/src/App.test.tsx: Support for the experimental syntax 'jsx' isn't currently enabled (6:12): 4 | describe('App', () => { 5 | it('should work as expected', () => { > 6 | render(); | ^ 7 | }); 8 | }); 9 | Add @babel/preset-react (https://github.com/babel/babel/tree/main/packages/babel-preset-react) to the 'presets' section of your Babel config to enable transformation. If you want to leave it as-is, add @babel/plugin-syntax-jsx (https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-jsx) to the 'plugins' section to enable parsing. Test Suites: 1 failed, 1 total Tests: 0 total Snapshots: 0 total Time: 0.278 s Ran all test suites matching /\/Users\/satparkash\/code\/test-app\/src\/App.test.tsx/i with tests matching "App".
- Open source public fund experiment - One and a half years update
-
I Reworked my Rate My GMU Professor (Google Extension)
Webpack (Babel) - https://babel.dev/
-
Babel is used by millions, so why are we running out of money? (2021)
I do appreciate your transparency, though I disagree with the sentiment that Iām arguing from a position of bad faith.
Itās a self-evident fact that the Babel team has not shown a moment of interest in lowering their role in the JavaScript ecosystem to anything short of kingmakers. Have a gander at their GitHub README and what do we see?[1]
- āBabel is a compiler for writing next generation JavaScript.ā Indefinitely.
- Over a dozen sponsor logos. An embarrassment of riches.
- A literal audio recording of a song in praise of the project.
The Babel team has a well documented history of their priorities[2], emphasizing the need for a modular approach that has no exit strategy[3]. At best, we have a case of accidental entrenchment and long term dependence on the Babel brewing as early as 2017![4]
Compare this infinite circus to the humble but popular Normalize.css, which has the express purpose to stop existing.[5]
If the Babel team wants to raise some money, they can start by putting a plan together that would codify an exit strategy. Itās certainly more noble than their current plan of barnacling on to every NPM packageā¦
- [1] https://github.com/babel/babel
- [2] https://github.com/babel/notes
- [3] https://github.com/babel/notes/blob/master/2016/2016-07/july...
- [4] https://github.com/babel/notes/blob/master/2017/2017-04/apri...
- [5] https://nicolasgallagher.com/about-normalize-css/
-
Reveddit does not work
The problem was I had used some new code, Javascript's replaceAll(), that is unsupported by older browsers. And, the setup I have to automatically fix such issues (called babel) is out of date. So, while this problem appears to be resolved there, I hadn't updated that in awhile.
-
The Complete Guide for Setting Up React App from Scratch (feat. TypeScript)
babel-loader(v9.1.0): allows transpiling JavaScript files using Babel and webpack.
-
Upgrade your Lerna Workspace - Make it Fast and Modern!
created 6 years ago to solve the specific problem of managing the Babel repo packages
-
Help with error when trying to include context in application before building and uploading to server.
https://github.com/babel/babel/discussions/13013 maybe this could help
- āIgnore the f'ing haters ā And other lessons learned from creating a popular
What are some alternatives?
swc - Rust-based platform for the Web
Traceur compiler - Traceur is a JavaScript.next-to-JavaScript-of-today compiler
ts-node - TypeScript execution and REPL for node.js
Live Server - A simple development http server with live reload capability.
esbuild - An extremely fast bundler for the web
ESLint - Find and fix problems in your JavaScript code.
fork-ts-checker-webpack-plugin - Webpack plugin that runs typescript type checker on a separate process.
Lebab - Turn your ES5 code into readable ES6. Lebab does the opposite of what Babel does.
swc-node - Faster ts-node without typecheck
dark-mode - Control the macOS dark mode from the command-line
TypeScript - TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
ECMAScript 6 compatibility table - ECMAScript compatibility tables