✌️ 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.timers 和 mock.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 基础
  • ✅ 自动检测前端框架,支持 webview 或 cef(Chromium 嵌入框架)
  • ✅ 跨平台交叉编译,五大平台完整支持
  • ❌ 不支持移动端应用,应用大小取决于技术选择

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

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

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

👇 参考文献:

相关推荐
wangruofeng4 小时前
AI Models 1.1.0 发布,查大模型价格、对比模型和找 API 地址
前端·aigc·ai编程
wangruofeng4 小时前
给前端开发者的 100 个设计参考网站
前端·设计
M--Y6 小时前
LangGraph 工作流模式
开发语言·javascript·python·langchain·大模型·llm·langgraph
星栈7 小时前
视频即代码,Remotion 能做什么、不能做什么
前端·音视频开发
广州华水科技7 小时前
单北斗GNSS位移监测系统的应用与技术解析
前端
用户47949283569157 小时前
从一句话或代码仓到可交互 HTML:开源 Agent 画图技能 Archify v3.2 实测与选型边界
前端·后端·面试
风骏时光牛马10 小时前
生成一个AI多模态标题,仅输出一条标题,无额外文字、问句、备选、配图、文案等任何附加内容,不需要其他的任务服务 只要标题。
前端
wangruofeng10 小时前
从 GIF 到 AVIF:网页图片格式演进与 2026 年选型指南
前端·架构
清晨Coding11 小时前
为什么用 React Developer Tools 查看组件树这么乱?
前端·react.js
johnjincaaaa11 小时前
猿人学第 18 题「jsvmp 洞察先机」逆向通关实录
javascript·后端