Hiroki Osame
hirok.io
Hiroki Osame
@hirok.io
👤 hirok.io
⚡️ Creator of @tsx.is
📦 Creator of https://pkg-size.dev
💞 Open Source https://github.com/privatenumber
💼 SWE @ Square
Reposted by Hiroki Osame
`oxc-minify` is now the recommended minifier when using @rolldown.rs!
While continuously tweaking the performance, the minifier is already outperforming `esbuild` in terms of speed and size.

Check out the benchmark by @hirok.io for perf comparison.

github.com/privatenumbe...
GitHub - privatenumber/minification-benchmarks: 🏃‍♂️🏃‍♀️🏃 JS minification benchmarks: babel-minify, esbuild, terser, uglify-js, swc, google closure compiler, tdewolff/minify, oxc-minify
🏃‍♂️🏃‍♀️🏃 JS minification benchmarks: babel-minify, esbuild, terser, uglify-js, swc, google closure compiler, tdewolff/minify, oxc-minify - privatenumber/minification-benchmarks
github.com
April 27, 2025 at 3:34 PM
Yep!

Limit depends on the model:
docs.github.com/en/github-mo...
Prototyping with AI models - GitHub Docs
Find and experiment with AI models for free.
docs.github.com
March 15, 2025 at 6:01 AM
It's so crazy I can do this for free now

If you're interested in how I do this, I'm querying GPT 4o on @github.com Models via GH Actions on every PR 🙏

Here's the system prompt:
github.com/privatenumbe...
github.com
March 15, 2025 at 5:00 AM
Hmm yeah I think the conversation happened around there

I think it was kind of a hidden exchange on a commit or something...

The closest thing I could find was in the docs where imports is mentioned as a standard replacement for paths:

www.typescriptlang.org/docs/handboo....
Documentation - Modules - Reference
Module syntax and compiler options reference
www.typescriptlang.org
January 17, 2025 at 12:12 PM
Very cool! Thanks for making this Kevin 🙌
December 30, 2024 at 2:27 AM
Good point!

Hope that Issue gains more momentum soon

Import Attributes have been supported and stable for a while now
December 30, 2024 at 2:24 AM
Thanks for sharing! I didn’t know it had better web support

Yep, bundlers conventionally use query parameters for this: vite.dev/guide/assets

But ImportAttributes has been around for a while now and can work seamlessly across platforms. I wonder why it hasn't caught on
Static Asset Handling
Next Generation Frontend Tooling
vite.dev
December 25, 2024 at 8:20 AM
You’re killing it 🔥
December 23, 2024 at 4:24 AM
Thank you and HNY!
December 23, 2024 at 4:23 AM
Unsure what you mean by "tree-shake the external dependencies"

Externalized deps are excluded from the bundle, so it's never tree-shaken
December 19, 2024 at 4:53 AM
Webpack relies heavily on Terser to handle dead code elimination: webpack.js.org/guides/tree-...

SWC works as an alternative because it's the Rust port of Terser: github.com/swc-project/...
Tree Shaking | webpack
webpack is a module bundler. Its main purpose is to bundle JavaScript files for usage in a browser, yet it is also capable of transforming, bundling, or packaging just about any resource or asset.
webpack.js.org
December 19, 2024 at 4:52 AM
Love the distinction between link and file:// hard linking

I supported this in my ‘link’ package as “publish mode”

Is there a Watch mode to keep file:// dependencies up to date during development? (e.g. new files)
November 29, 2024 at 2:25 AM
I think this makes my point

A beginner shouldn't need to understand all that to wrap their head around
useEffect(() => {}, []) === onMounted(() => {})

This is about empathizing with beginners, not trivializing concepts we already get
November 24, 2024 at 12:08 AM
That would trigger on server as well, which may be undesired

And may even build up server memory via closure
November 23, 2024 at 9:36 AM