GNOME 45版本将影响您最喜欢的扩展,扩展开发者需要移植他们的扩展才能使其工作。
到现在为止,你一定听说过这件事。一个重要的转变是,随着GNOME 45版本的发布(即将发布),GNOME Shell正在从其定制的导入系统过渡到标准的JavaScript模块(ESM)。
这一举措承诺改善代码组织和与现代JavaScript实践的兼容性,但它也会带来一些后果,可能会影响您的GNOME体验。
最初设计的目的是增加网页的互动性,但最初并没有配置为处理分散在多个文件中的大型应用程序。这一限制导致了在各种JavaScript环境中开发自定义导入系统,包括GNOME的GJS。因此,开发人员和工具在不同的JavaScript生态系统之间转换时面临挑战。
然而,随着ECMAScript 6(ES6)模块标准化,决定性的时刻在2015年到来。这些模块提供了一种定义良好、得到广泛支持的语法,所有主要的JavaScript引擎都采用这种语法。尽管GJS在2021年开始支持ES模块,但将整个GNOME Shell移植到这个新系统上是一项艰巨的任务。
模块与传统导入
现在,事情变得有点棘手了。在实践中,模块和遗留导入从根本上是不兼容的。模块的加载方式与脚本不同;一些关键语句,如‘IMPORT’和‘EXPORT’,仅在模块内有效。这意味着,如果模块使用这些语句,则尝试使用传统系统导入模块将导致语法错误。
那么,这对您这个GNOME用户意味着什么呢?
从GNOME 45开始,为旧版GNOME开发的扩展将不起作用。相反,经过精心调整以在GNOME 45上运行的扩展在较早的GNOME版本中将不起作用。
然而,并不是一切都失去了!如果您是一名开发人员,并且希望继续支持较旧和较新的GNOME版本,则需要将不同版本的扩展上传到extsions.gnome.org以获得45岁之前和45岁后的支持。
对于开发人员来说,这可能是大量的工作。
GNOME社区在此帮助开发人员完成这一过渡。有一个全面的移植指南,其中有详细的信息来帮助开发人员更新他们的GNOME 45扩展。此外,一个活跃的扩展社区已经准备好在Matrix和Discount等平台上伸出援手,使移植到新的导入系统的过程更容易访问和更顺畅。
对于用户来说,您需要等待,直到那些针对45之前版本的特定扩展在他们的代码中完成移植。因此,当GNOME 45发布时(通过Fedora 39,Ubuntu 23.10),在升级之前禁用扩展。
通过博客帖子,其FOSS新闻