最后的润色:v2.0.0-rc.10 的新功能
Deno 2 即将发布,但如果您想立即尝试,可以使用 Deno 2.0 发布候选版本。自从我们两周前发布了发布候选版本以来,我们已经进行了 10 次补丁更新,其中我们修复了错误并添加了功能,例如用于通过 HTTP 导入模块的新权限标志。阅读完整的更改列表。
要尝试发布候选版本,请在您的终端中运行以下指令
deno upgrade
deno upgrade rc
ℹ️ 如果您使用 Homebrew 等其他分发方式,
deno upgrade
可能不可用。按照(shell 或 powershell 安装指令)[https://docs.deno.org.cn/runtime/getting_started/installation/],然后运行上述命令。
🚨️ 我们正在积极寻求反馈 🚨️
此发布候选版本帮助我们在最终发布 2 之前识别问题。如果您遇到任何问题或需要额外指导,请 在 GitHub 上创建问题 或者在 我们的 Discord 的
#deno-2-help
频道 中提问。我们的团队正在积极监控这两个地方,并将尽快提供帮助。
v2.0.0-rc.10 的新功能
新的
--allow-import
权限标志 用于通过 HTTP 导入net API(例如
Deno.listen()
或Deno.startTls()
)报告的错误现在将 抛出Deno.errors.Busy
错误而不是通用的Deno.errors.BadResource
错误。使用
npm:esbuild
现在更容易,这得益于 不需要--allow-scripts
标志。运行使用带有 Node-API 附加组件的 npm 包的程序现在将 提供有用的提示,如果安装不正确。
语言服务器快速修复,为不分发类型但具有相应
@types
包的 npm 包添加// @ts-types="npm:..."
deno fmt
稳定了 CSS、HTML 和 YAML 格式化程序。不再需要使用--unstable-css
、--unstable-html
和--unstable-yaml
标志。组件格式化程序现在 支持.vto
和.njk
文件。node:buffer
模块现在 支持transcode
方法node:crypto
获得 对 p521 密钥的支持新的 Deno 版本将 随附 sha256 校验和文件
globalThis.location
现在 是一个可配置属性在使用 Deno 2 中已删除的
window
全局变量时,现在将显示有用的提示。
压缩数据的
fetch
API 吞吐量 通过升级tower_http
得到了改进performance.measure()
API 已优化当 包不在
package.json
中 时,支持deno run npm:<package>
反复警告 显式安装时未运行的生命周期脚本
以及大量的错误修复
- 修复:改进 Deno.UnsafeWindowSurface 的错误、更正 HttpClient 名称、清理未使用的代码
- 修复:cjs 解析案例
- 修复:与 deno_config 一致,并将
"experimentalDecorators"
视为已弃用 - 修复:对于具有空版本约束的说明符,尽早出错
- 修复:如果在子命令之前传递了有效的标志,则出错
- 修复:从帮助输出中隐藏 ‘deno cache’
- 修复:在 require(esm) 时出现恐慌
- 修复:预编译保留 SVG 驼峰式属性
- 修复:删除帮助消息中的拼写错误
- 修复:更新 deno_npm 以修复使用 crossws 的
deno install
- 修复:将 patchver 更新为 0.2
- 修复:将 sui 更新为 0.4
- 修复(添加/安装):在
deno add npm:pkg
中,对于 npm 包,默认使用“最新”标签 - 修复(检查):忽略远程模块中的 noImplicitOverrides
- 修复(检查):在 js 文件的类型文件中正确显示依赖项错误
- 修复(cli):对于 –node-modules-dir 标志,默认使用自动
- 修复(cli):仅在未允许所有权限的情况下,才为 deno serve 设置允许网络标志
- 修复(cli):在使用全局缓存时,警告未运行的生命周期脚本
- 修复(编译):支持 RC 和 LTS 版本中的 ‘deno compile’
- 修复(覆盖范围):忽略来自文档测试的 URL
- 修复(文档):将图形错误显示为警告
- 修复(ext/crypto):确保导出未压缩的 EC 公钥
- 修复(ext/crypto):拒绝 SubtleCrypto#importKey 中的空使用情况
- 修复(ext/node):修复 process.stdin.pause()
- 修复(ext/node):修复 vm 沙箱对象恐慌
- 修复(ext/node):删除未实现的 promiseHook 存根
- 修复(ext/node):为 OpenBSD 存根 cpu_info()
- 修复(ext/web):不要忽略 EventTarget.removeEventListener 中的捕获
- 修复(标志):–allow-all 应与较低权限冲突
- 修复(标志):将 docs.deno.com 的部分内容移入帮助输出
- 修复(标志):为 URL 正确出错
- 修复(fmt):–check 对于 CSS、YAML 和 HTML 失败
- 修复(信息):在使用 byonm 时,对于 npm 说明符,出现错误而不是恐慌
- 修复(信息):将“版本”字段移到 json 输出的顶部
- 修复(安装):直接比较版本以决定是否为工作区成员创建子 node_modules 目录
- 修复(安装):将与包关联的标签存储在 node_modules 目录中
- 修复(安装):即使没有放到
node_modules/.bin
中,也要使 bin 条目可执行 - 修复(lint):在 linter 中正确处理旧的 jsx
- 修复(no-slow-types):更好的
override
处理 - 修复(node):如果我们无法静态分析 CJS 重新导出,则不要出错
- 修复(node):实现支持
npm:sqlite3
所需的 libuv API - 修复(node):在 CJS 重新导出分析期间包含“node”条件
- 修复(node):通过临时文件而不是环境变量将 NPM_PROCESS_STATE 传递给子进程
- 修复(工作区):处理通过 –config 指定时配置具有成员的情况
致谢
与往常一样,没有我们社区的帮助,我们就无法构建 Deno!无论是在我们的社区 Discord 服务器 中回答问题还是 报告错误,我们都非常感谢您的支持。特别是,我们要感谢以下人员为 Deno 2 发布候选版本做出的贡献:Ian Bull、Kenta Moriuchi、Mohammad Sulaiman、MujahedSafaa、Óscar Otero、Pig Fang、Simon Lecoq、Volker Schlecht 和 Carles Escrig Royo。
接下来是什么
Deno 2.0 投入了大量工作,我们计划在下周发布。感谢您的耐心,也感谢您尝试发布候选版本并在 Discord 或 GitHub 中提供反馈。我们将继续积极监控这两个区域,以确保所有重大错误都已修复。