17611538698
webmaster@21cto.com

Visual Studio Code 把自身源代码迁移到 ECMAScript 模块

开源 0 324 2024-09-07 07:42:00

图片

微软于近日发布广泛使用的程序员编辑器和轻量级 IDE Visual Studio Code(VS Code)1.93 版本。

这个版本除了常见的大量新功能外,微软的开发团队还表示已完成采用 ESM(ECMAScript 模块)取代旧版 AMD(异步模块定义)标准的大部分工作。

关于ESM

ESM 是现代浏览器的原生标准,但 AMD 早于 ESM 的长期标准。

微软工程师 Benjamin Pasero 对此称道,“我们现在能够使用构建标志构建 VS Code 的 ESM 变体,该标志将运行迁移脚本。”此脚本将源代码(TypeScript)转换为 ESM 兼容格式。

Pasero 表示,目标是“在 9 月推出支持 ESM 的 Insiders,并在 10 月推出稳定版”,其中 Insiders 是 VS Code 的预发布版本,比稳定版提前一个月左右发布。 

这种方法操作会比较谨慎。如果 ESM 构建存在问题,我们将有办法将代码转换回 AMD。如果 10 月的稳定版本没有出现重大问题。

“我们将开始从我们的源代码中删除 AMD 痕迹,并删除将 VS Code 构建为 AMD 的选项,”Pasero 继续说道。

虽然此次迁移的目标是对开发人员来说基本不可见,但这个大型代码库和主要项目进行此次迁移具有重要意义,可能有助于加速缓慢的 ESM 普遍性采用。

SQL提示相关修复

1.93 版(也称为 8 月版本)的一个有趣功能是,它包含一个修复程序,用于修复将 SQL Server 语言错误地描述为 SQL 语句的问题。VS Code 是微软的产品,也是开源代码 OSS 的发行版,尽管它在许多语言和平台上都很受欢迎,但在某些领域,Microsoft 特定的默认值或功能可能会更令开发者困惑。

其中之一就是 SQL(结构化查询语言),VS Code 的语法高亮功能并不总是能像预期的那样处理带有 .sql 扩展名的文件。上周的一个代码例子就是这个问题:“SQL 格式没有高亮‘qualify’语句。”

问题以“按设计”结束,正像微软高级软件工程师 Charles Gagnon所述,“VS Code 已采用 MS SQL (T-SQL) 语法作为基本‘sql’语法。” T-SQL 代表 Transact SQL,是 Sybase 和微软为 SQL Server 开发的 SQL 扩展。PostgreSQL 有自己的语言扩展,Oracle SQL、MySQL、SQLite 等也有自己的语言扩展。

VS Code 1.93 中还有一个小小变化,即 T-SQL 现在被正确描述为 MS SQL,当使用默认设置打开 .sql 文件时,右下角会显示该信息。以前它只是显示 SQL。跟从前一样,单击此标识符或安装一个可以理解正在使用的 SQL 方言的扩展,然后就可以更改文件关联了。

配置文件改进

1.93 版本中还有不少功能。其中之一是配置文件编辑器的改进用户界面(之前是实验性的)现在默认启用了。配置文件允许开发人员配置设置、扩展、视图布局、键绑定、代码片段和任务,将它们保存在配置文件名称下,并在不同类型的工作区间切换配置文件。 

Django优化

Python的Django开发人员会很高兴地发现,现在可以通过 VS Code 测试资源管理器发现并运行 Django 单元测试。

此功能于 2017 年首次被要求到现在,表明解决问题的过程可能很漫长。

智能编码进一步改进

VS Code 的浏览器托管版本已通过 IntelliSense 软件包进行了改进,这意味着导入的软件包(例如 react)会弹出文档和代码完成。

微软还为 JavaScript 和 TypeScript 项目实现了完整的 IntelliSense,这意味着“转到定义”和“查找所有引用”现在可以按预期地工作。

也就是说,此功能仅适用于 Chrome、Edge 和 Firefox这些主流浏览器;由于需要名为 ReadableByteStreamController 的浏览器 API,因此不支持 Apple 的 Safari浏览器——比如,对于使用 iPad 工作的开发人员来说,这可能是个坏消息。

新的JS增强特性

对于 JavaScript 开发人员来说,一个方便的功能是新的实验性网络视图,用于显示请求和响应,该视图非常适用于浏览器会话,并且在一定程度上适用于 Node.js 22.6 及更高版本。

不过存在一个警告,使用 Node 时需要在启动 Node 时使用 –experimental-network-inspection 标志,即便如此,“Node 的网络实现仍处于非常早期的阶段,有关请求和响应的大多数数据尚不可用。”

好了,今天是周末,祝大家开心编码!

作者:聆听音乐的鱼

评论