Today, we’re thrilled to announce Deno 2, which includes:
- Backwards compatibility with Node.js and npm, allowing you to run existing Node applications seamlessly
- Native support for package.json and node_modules
- Package management with new deno install, deno add, and deno remove commands
- A stabilized standard library
- Support for private npm registries
- Workspaces and monorepo support
- Long Term Support (LTS) releases
- JSR: a modern registry for sharing JavaScript libraries across runtimes
We are also continually improving many existing Deno features:
- deno fmt can now format HTML, CSS, and YAML
- deno lint now has Node specific rules and quick fixes
- deno test now supports running tests written using node:test
- deno task can now run package.json scripts
- deno doc’s HTML output has improved design and better search
- deno compile now supports code signing and icons on Windows
- deno serve can run HTTP servers across multiple cores, in parallel
- deno init can scaffold now scaffold libraries or servers
- deno jupyter now supports outputting images, graphs, and HTML
- deno bench supports critical sections for more precise measurements
- deno coverage can now output reports in HTML
Deno is a single binary for the TypeScript and JavaScript ecosystems. Deno is secure by default (installing npm libs do not automatically have full system perms/access).
The new standard library stabilizes a vetted collection of safe binaries instead of having to search for and install random libraries for basic or common use cases with [or without] own security assessments.
Deno compile compiles the TS/JS project into a single binary.
The backwards compatibility to npm and npm/js frameworks enables deno usage in existing projects and with existing libs with the benefits of deno and a path to incremental migration.
The announcement video is worth watching. The intro is great.
I’m not in (or into) the JS ecosystem. I’m glad I didn’t have to dive into that at work yet. But I’ve used deno and bun in the past to evade installing NodeJS.
Just now I used deno v2 to build a static website I contributed a fix to, and it worked. I’m very glad to see I don’t have to juggle different npm alternatives or be stuck without when I want to contribute but definitely do not want to install NodeJS.
The deno install was hilariously slow downloading and installing the JS libs into the node_modules folder. 150 MB of JS source code. For a simple static website generator.
Comparing it to the hugo.exe binary (go, single binary static website generator): That one is 80 MB. Not having to juggle many files makes it a lot faster and compact of course.
The deno.exe is 107 MB. Which is a chunky size; but man it provides a lot. When you contrast that to the node_modules folder… lol
The announcement also mentions and links to JSR for TypeScript module publishing platform, also with backwards compatibility and automatic stuff generating. Which also seems like a good effort.