✌️ Deno 2.9 来了,ESM 直接导入 CSS,甚至能开发桌面应用?!

👇 今日要闻

打破信息壁垒,走近全球前端。Hello 大家好,我是林语冰。

Deno 是 Node 之父使用 Rust 语言重做的新一代 JS 运行时,旨在解决 Node 的历史包袱,和 Node、Bun 合称"JS 运行时三柱神"。

Deno 团队官宣 2.9 次版本正式发布,最核心的新功能是 deno desktop,支持基于 Web 技术栈打造原生桌面应用,无需 Electron 和 Tauri 等流行桌面应用框架。

此外,本次 Deno 还带来一大波新功能和改进,我们一起速览一下。

👉 生态兼容性

Deno 2.9 进一步提升了 Deno 和 Node、npm、pnpm 等生态的兼容性,确保项目迁移到 Deno 的阻力更小。

首先,Deno 的兼容目标升级到了 Node 26,现在能解析部分 Node 内置函数,无需配置,比如常用的 import "fs" 会被映射到 "node:fs",和 Node 用法一样。

此外,Node 部分 API 也被 Deno 实现了,比如:

  • node:test 测试模块支持 mock.timersmock.module 等 API
  • node:net 网络模块的回调保留了 AsyncLocalStorage 上下文
  • 支持 process.resourceUsage() 等进程等运行时 API

作为现代运行时,Deno 自己就是类似 npm 的包管理器。Deno 2.9 现在能解析 Node 项目的 package.json 包配置文件和 workspace 工作区结构。

这样,当你从 Node 项目中迁移到 Deno 时,相关配置都能被 Deno 正确解析,迁移过程更加丝滑。

👉 模块导入改进

前端工程中,我们惯用模块系统导入不同格式的文件,比如 .json.css 等。

但这其实仰赖 Vite 等现代打包器的加持,JS 引擎本身并不支持导入 .js 之外的其他文件格式。

ES2025 开始支持 导入特性提案 ,允许导入 JSON 模块,这是第一种 ESM 支持的非 JS 文件,基本语法如下:

Deno 2.9 基于导入特性提案更进一步,现在也支持导入 CSS 文件。

使用 ESM 导入 .css 文件作为结构化样式表,基本语法如下:

这里的导入结果解析为一个 CSSStyleSheet 样式表实例,即使不借助 Vite 等打包器,代码也能同时跑在浏览器或 Deno 运行时中,省略打包构建步骤。

👉 供应链安全

前端生态近年来供应链攻击屡见不鲜,axios 等流行模块噩耗频传。为此,Deno 2.9 增强了供应链安全。

Deno 现在支持 min-release-age 最小发布时限配置,它会拒绝安装早于指定时限发布的新版 npm 模块。

这是因为很多代码投毒之类的供应链攻击在新版本发布后的 1~2 天内都能被检测出来,因此,只要拖延到高风险时间段之后再安装新版本,用户就能躲避大多数供应链攻击。

Deno 2.6 开始就支持选用 min-release-age 配置,现在 Deno 2.9 默认直接启用,并将最小发布时限设置为 24 小时,也就是一天之内发布的新版本都会被拒绝更新。

Deno 支持在 .npmrc 中按需配置,你的配置优先级能覆盖 Deno 默认的保护性配置,比如:

此外,Deno 2.9 新增了可选的 npm 信任策略,这能防止黑客盗用库作者的权限发布模块的攻击。

Deno 沿用了 pnpm 的设计,对版本发布的信任程度进行定级:

  1. 阶段式发布,库作者使用 2FA 双因认证发布,安全等级最高
  2. 携带来源证明的可信发布,安全等级次之
  3. 单独的来源证明,安全等级较低

Deno 默认禁用信任策略,你可以在 .npmrc 中按需启用:

这样,当某模块以前习惯较高的安全等级发布,但新版本突然降低安全等级发布时,Deno 会拒绝无脑升级新版本,因为该模块可能已经被黑客盗用权限了。

👉 桌面应用开发

Deno 2.9 的亮点功能是 deno desktop,它支持把 Next / Nuxt 等前端框架项目转化为一个独立的原生桌面应用,最终产物是一个跨平台分发的二进制文件,无需借助 Electron / Tauri 等桌面应用框架。

Deno vs Electron vs Tauri 的技术对照表如下:

Electron Deno Tauri
编程语言 JS / TS JS / TS Rust + JS / TS
Web 引擎 Chromium CEF / WebView WebView
一致渲染
兼容 Node
交叉编译
框架自检测
iOS / Android

我简单汇总了这张对照表来快速科普一下,更多细节可以参考我的另一篇博客《Electron 麻了,Deno 直接支持二进制应用,无需第三方桌面应用框架!》(文末链接可跳转~)

👇 重点总结

Deno 团队官宣 2.9 次版本 正式发布,此版本涉及性能优化、Node 生态兼容性、模块系统改进、供应链安全提升和 CLI 脚手架更新等综合升级,更多细节另请参阅官方博客。

其中最大亮点是 deno desktop 支持打造原生桌面应用,无需使用 Electron / Tauri 等桌面应用开发框架,优缺点主要有:

  • ✅ 基于纯 Web 技术,兼容 Node 生态,无需 Rust 基础
  • ✅ 自动检测前端框架,支持 webviewcef(Chromium 嵌入框架)
  • ✅ 跨平台交叉编译,五大平台完整支持
  • ❌ 不支持移动端应用,应用大小取决于技术选择

deno desktop 是一个先锋实验,未来或许能进一步竞争桌面应用市场,这也标志着 Deno 正在进化为一个破而后立的 JS 运行时。

👍 以上就是本期《前端日报》的全部内容了,如果读完对你有所帮助,可以按赞打卡、在看推荐或转发分享。

🙏 已经关注我的粉丝们,我们下期再见啦,掰掰~~

👇 参考文献:

相关推荐
不简说2 小时前
JS 代码技巧 vol.1 — 10 个让代码少写 30% 的小套路
前端·javascript·面试
@@@@@@@@542 小时前
JavaScript 的缺点与 TypeScript 的弥补
开发语言·javascript·typescript
Hilaku2 小时前
为什么业务型前端容易遭遇中年危机?
前端·javascript·程序员
এ慕ོ冬℘゜2 小时前
深度解析 JavaScript:赋予 Web 灵魂的“全栈语言”
开发语言·前端·javascript
iCOD3R2 小时前
Skill - 3秒生成精美GitHub主页
前端·程序员·ai编程
爱勇宝2 小时前
《道德经》第5章:生产环境不相信眼泪
前端·后端·架构
掘金者阿豪2 小时前
LEFT JOIN 凭空消失的背后,是优化器偷偷帮你做了决定
前端·后端
HackTwoHub2 小时前
AntiDebug Mcp、AI逆向绕过前端,Hook 加密接口,抓取 Vue 路由漏洞,接入 MCP 让 AI 自动化挖掘前端漏洞
前端·vue.js·人工智能·安全·web安全·网络安全·系统安全
Mr_凌宇2 小时前
AI 应用工程进阶扩展学习笔记 二
前端·面试