建议:脚本模块的服务器到客户端数据共享

摘要

WordPress 6.5中引入了脚本模块.wp_add_inline脚本通常用于初始化或使数据可用于脚本。关于脚本模块的反馈探索建议这将是脚本模块的一个有用功能,但目前还不存在。这篇文章将详细描述这个问题并提出解决方案。建议的解决方案包括三个要点:

  • 一个新的滤波器过滤器 过滤器是两种挂钩之一https://codex.wordpress.org/Plugin_API/挂钩。它们为函数修改其他函数的数据提供了一种方法。它们是Actions的对应物。与Actions不同,过滤器是以孤立的方式工作的,不应该有副作用,例如影响全局变量和输出。为排队或依存关系图中的每个脚本模块运行。此过滤器允许将任意数据与给定的脚本模块关联并添加到呈现的页面。
  • 脚本模块数据在页面中嵌入为JSON格式JSON格式 JSON或JavaScript Object Notation是结构化数据的最小可读格式。它主要用于在服务器和web应用程序之间传输数据,作为XML的替代方案。在一个<script type=“application/json”> 标签标签 Subversion中的目录。WordPress使用标签来存储版本(3.6、3.6.1等)的单个快照,这是版本控制系统中标签的常见约定。(不要与帖子标签混淆。).
  • 脚本模块负责读取数据并执行自己的初始化。
阅读更多:建议:脚本模块的服务器到客户端数据共享

反馈期将于2024-05-24结束(5月24日,星期五)。请在此之前提供任何反馈。

这篇文章将用“脚本”来指代WP脚本,用“模块”来指WP脚本模块.

脚本还是模块?

大多数JavaScript脚本JavaScript脚本 JavaScript或JS是一种面向对象的计算机编程语言,常用于在web浏览器中创建交互效果。WordPress广泛使用JS以获得更好的用户体验。当PHP在服务器上执行时,JS在用户的浏览器中执行。https://www.javascript.com/.for WordPress可能正在使用脚本 除非它是作为模块专门编译的。现代JavaScript通常使用从“@wordpress/api-fetch”导入apiFetch,这是模块语法。直到最近WordPress构建工具总是删除模块语法并编译脚本。

仅最近的WordPress 6.5版引入了对模块的支持.WordPress核心核心 核心是运行WordPress所需的一组软件。核心开发团队构建WordPress。此时正好包含两个模块来公开功能:@wordpress/互动@wordpress/交互式路由器.使用交互的JavaScript美国石油学会美国石油学会 API或应用程序编程接口是一种软件中介,允许程序以有限的、明确定义的方式相互交互和共享数据。可能是一个模块.

这篇文章将讨论一个常见的脚本依赖关系,wp-api-蚀刻. The@wordpress/api-回迁 模块本文中提到的是假设;目前还不存在。

关于模块的注释

在本文的上下文中,了解一些关于脚本和模块的知识是很重要的。几个关键区别:

  • 即使从未直接使用依赖项,脚本及其依赖项也会在解析页面时执行。
  • 脚本“导出”附加到窗口对象,例如。wp-api-蚀刻可用作window.wp.api获取.
  • 模块将在页面解析完成后执行。
  • 模块依赖项可以按需加载。
  • 模块具有真正的封装,使用进口出口分享价值观。
有关脚本和模块的更多信息…

已排队或已排队脚本的依赖项的脚本将作为脚本标记添加到页面中,如<script src=“path/to/script.js”>。浏览器将在继续分析页面之前获取并执行这些脚本。有如下属性异步推迟这可能会改变浏览器执行脚本的方式。

排队的模块将在页面上显示为类型为的脚本标记模块,比如<script src=“path/to/module.js”type=“module”>.模块的处理是推迟,它们将在整个文档被解析后执行。这个异步属性将导致模块在解析文档时并行执行。WordPress脚本模块不使用异步此时。

排队模块的依赖关系图中的模块将出现在一个导入映射。这是名称到URL的映射,以便浏览器在看到导入时知道要获取的模块。它将语句中使用的模块关联起来,如导入“a-module”;用一个统一资源定位地址统一资源定位地址 互联网上网站或网页的特定网址,例如网站的URL www.wordpress.org {“imports”:{“a-module”:“path/to/a-module.js”}}.

这个问题

脚本通常需要一些初始化或其他数据才能在WordPress中正常工作。这个wp-api-蚀刻脚本就是一个很好的例子,它需要大量的配置。例如,Core使用以下内联脚本进行初始化wp-api-蚀刻这样它可以将请求发送到适当的位置:

$脚本->add_inline_script('wp-api获取',短跑('wp.apiFetch.use(wp.apiPetch.createRootURLMiddleware(“%s”);',清理url(get_rest_url())),“之后”);

此代码段使用PHP程序PHP程序 WordPress主要使用的web脚本语言。WordPress需要PHP 5.6.20或更高版本使用嵌入的PHP数据创建JavaScript代码字符串。这将包含在脚本紧跟在脚本的标记wp-api-蚀刻,大致如下:

<script src=“path/to/wp-api-fetch.js”></script><脚本>//JavaScript代码打印在此处:wp.apiFetch.use(wp.apiPetch.createRootURLMidleware(“…/index.php?rest_route=/”));//其他调用`wp_add_inline_script`后可能会有更多代码…</script>

注意,JavaScript依赖于wp-api-蚀刻,它迫切地呼叫wp.apiFetch.use(…)相同的方法和假设@wordpress/api获取模块将如下所示:

<script type=“importmap”>{“导入”:{“@wordpress/api-fetch”:“…url/to/api-fetch-module.js”}}</script><script type=“模块”>从“@wordpress/api-fetch”导入apiFetch;wp.apiFetch.use(wp.apiPetch.createRootURLMidleware(“…/index.php?rest_route=/”));</script>

在这种方法中,初始化模块将获取并执行@wordpress/api-回迁模块只是为了初始化它!这消除了模块的一个重要优势,即按需加载的能力。🤔 看起来这种命令式初始化不太适合模块。让我们看看是否有更好的解决方案…

提案

以下是初始实现产生的一些要求:

  • 应根据需要获取和初始化模块。
  • 模块在执行时应该负责自己的初始化。
  • 变量的作用域应该是模块,而不是污染全局命名空间。
  • 数据应引入最小的开销。

通过筛选器添加服务器数据

过滤器提供了一种收集模块所需数据的好方法。这个WP_脚本_模块类引入了一个新的过滤器,该过滤器针对排队或存在于依赖关系图中的每个模块运行。为模块添加或修改数据如下所示:

添加筛选器('scriptmoduledata_@wordpress/api取',函数($data){$data['rootURL']=清理url(get_rest_url())返回$data;});

可以添加多个筛选器来添加或修改向脚本公开的数据,如果没有添加任何数据,则不会在客户端的页面上序列化任何内容。值得一提的是,没有用PHP编写JavaScript代码,这是一个很好的改进wp_add_inline脚本这需要添加有效的JavaScript。

这种方法的一个缺点是,传递的所有数据都必须通过JSON。默认情况下不支持没有有效JSON表示的数据。

使用惰性气体脚本标记以在客户端上公开数据

数据被嵌入到HTML格式HTML格式 超文本标记语言。主要用于在web浏览器中输出内容的语义脚本语言。在一个脚本标签:

<script id=“scriptmoduledata_@wordpress/api-fetch“type=”application/json“>{“theData”:“可以共享JSON序列化数据”}</script>

这个脚本标签实际上被浏览器忽略,因为它类型属性。此方法是如何在HTML中嵌入数据的MDN示例而且它是已在WordPress中用于将交互API数据传递给客户端.

因为模块总是被延迟,所以在页面底部打印这些脚本标记应该是安全的。它们对页面加载的影响应该是有限的,因为浏览器不会解析或执行内容。

模块从脚本标记读取数据

这个脚本标记本身不做任何事情。模块负责获取数据,并在执行以下操作时执行初始化:

if(文档类型!==“未定义”){const serializedData=文档.getElementById('scriptmoduledata_@wordpress/api提取')?.text内容;if(序列化数据){让config=null;尝试{config=JSON.parse(序列化数据);}捕捉{//解析序列化数据时出现问题}执行初始化(配置);}}函数performInitialization(config){if(配置?.rootURL){注册表中间件(createRootURLMiddleware(config.rootURL));}//等。}

此方法用于@wordpress/互动检索客户端上的存储数据。

试试看!

我在以下PR中创建了该提案的原型:

  • WordPress开发PR 6433应用筛选器并添加必要的筛选器以将数据公开到@wordpress/api-回迁。本职位中的提案包含在本PR中。
  • 古腾堡PR 60952生成并注册@wordpress/api-回迁模块。此PR有助于测试,但超出了本文的范围。

在WordPress Playground试试。如果在检查器控制台中运行以下JavaScript,请确保选择JavaScript上下文,如下所示wp(范围:abc123)-你会看到@wordpress/api-回迁模块在导入时记录一些初始化,然后按预期工作:

const{apiFetch}=等待导入('@wordpress/api-fetch');等待apiFetch({path:'/wp/v2/block-types'})
浏览器控制台的屏幕截图显示“@wordpress/api fetch”模块按需初始化并用于发出REST请求。

相关链接

道具@你知道riad,@卡布拉沃伯纳尔,@前列腺增生、和@安卓类供审查。

#javascript脚本,#脚本加载程序

探索支持模块和导入地图

随着网络的不断发展,我们的构建和管理方法也在不断发展JavaScript脚本JavaScript脚本 JavaScript或JS是一种面向对象的计算机编程语言,常用于在web浏览器中创建交互效果。WordPress广泛使用JS以获得更好的用户体验。当PHP在服务器上执行时,JS在用户的浏览器中执行。https://www.javascript.com/.在WordPress中。展望未来,一项合作正在进行中,以探索对现代JavaScript模块的本地支持,并在WordPress生态系统中导入地图。这一探索旨在通过拥抱现代浏览器的功能来增强开发人员的体验。

介绍

JavaScript模块改变了开发人员编写和组织JavaScript代码的方式。它们提供了一个更干净、更模块化的体系结构,使代码更易于跨项目维护、测试和重用。如今,绝大多数web浏览器都提供了对JavaScript模块语法的本地支持,提供了性能优势,并为我们如何开发和管理客户端脚本提供了新的可能性。

在这个领域,WordPress必须跟上这些进步的步伐,并开始尝试添加本地支持来注册和排队JavaScript模块,包括直接在WordPres中生成导入映射。

该倡议的主要目标是:

  • 利用现代浏览器中可用的本地JavaScript模块系统。
  • 使用JavaScript模块简化WordPress的开发过程。
  • 确定处理依赖关系和优化加载时间的最有效方法。

先前的讨论和实验

以下链接是一些初步讨论和实验,涉及JavaScript模块和WordPress生态系统中脚本加载的相关方法:

然而,走向现代、模块友好的WordPress的旅程仍处于早期阶段,接下来的步骤将有助于确定如何以既有利于开发人员又有利于用户的方式最佳地集成模块支持,同时又不会破坏当前WordPres体验的稳定性和熟悉性。

实验阶段

目前的计划包括在古腾堡古腾堡 古腾堡项目是WordPress的新编辑器界面。编辑器改进了创建新内容的过程和体验,使编写丰富内容变得更加简单。它使用“块”来增加丰富性,而不是短代码、自定义HTML等。https://wordpress.org/gutenberg网站/ 插件插件 插件是一个包含一组功能的软件,可以添加到WordPress网站。他们可以为你的WordPress网站扩展功能或添加新功能。WordPress插件是用PHP编程语言编写的,并与WordPres无缝集成。这些可以在WordPress.org插件目录中免费https://wordpress.org/插件/或者可以是第三方基于成本的插件通过在这个半封闭的环境中进行探索,贡献者将获得构建与WordPress现有基础设施兼容的模块的实际见解。这项实验将有助于在多个方面做出明智的决定:

  • 决定是否扩展现有wp_排队_脚本发挥作用或引入独特的美国石油学会美国石油学会 API或应用程序编程接口是一种软件中介,允许程序以有限的、明确定义的方式相互交互和共享数据。(比如wp_排队_模块).
  • 评估是否保持对服务器的依赖性,是否完全依赖客户端的本机分辨率。
  • 为模块标识符、依赖项注册、内联模块、预加载优化等建立最佳实践。
  • 评估集成挑战并确保向后兼容性。

值得注意的是,虽然为了简单起见,实验将使用单独的API启动,这不一定预先确定提案的最终形式.

在进行实验、收集见解并结合收到的反馈后,将提供一份更新,概述更具体的实施计划。

潜在的增强功能,如依赖关系自动检测和其他性能优化,可以在稍后逐步引入。

你的意见很重要

你的观点对这项倡议的成功至关重要。无论你是插件作者、主题开发者,核心核心 核心是运行WordPress所需的一组软件。核心开发团队构建WordPress。贡献者,或任何对WordPress中JavaScript的未来感兴趣的人,与我们一起制定一个健壮且具有前瞻性的解决方案。

参与进来!

我们邀请您参与这个探索阶段,并提出您的想法、关注点和建议。以下是开始对话的一些提示:

  • 您目前是如何管理WordPress项目中的JavaScript模块的?
  • 您在现有脚本排队系统中遇到了哪些挑战?
  • JavaScript模块的本机支持可以通过哪些方式改进您的开发工作流?
  • 有没有你觉得这个提议能给你或WordPress社区带来巨大利益的特定用例或场景?

请在下面的评论中分享您的想法Trac公司,或参与正在进行的关于github。您的参与对于共同打造更现代、更模块化的WordPress来说是无价的。

多亏了@你知道riad,@前列腺增生,@安娜扎祖,@胡安马奎塔、和@网络通信卫星查看此帖子,以及许多参与过围绕此增强的讨论已经。

#核心,#核心-js,#javascript脚本,#性能

使用加载策略增强脚本API

概述

这篇文章概述了添加脚本加载策略的建议增强增强 增强是对WordPress的简单改进,例如添加挂钩、新功能或对现有功能的改进。核心核心 核心是运行WordPress所需的一组软件。核心开发团队构建WordPress。的现有脚本美国石油学会美国石油学会 API或应用程序编程接口是一种软件中介,允许程序以有限的、明确定义的方式相互交互和共享数据。.  

这项工作的基本目标是使WordPress更容易插件插件 插件是一个包含一组功能的软件,可以添加到WordPress网站。他们可以为你的WordPress网站扩展功能或添加新功能。WordPress插件是用PHP编程语言编写的,并与WordPres无缝集成。这些可以在WordPress.org插件目录中免费https://wordpress.org/插件/或者可以是第三方基于成本的插件和主题开发人员以及核心使用“现代”加载方法JavaScript脚本JavaScript脚本 JavaScript或JS是一种面向对象的计算机编程语言,常用于在web浏览器中创建交互效果。WordPress广泛使用JS以获得更好的用户体验。当PHP在服务器上执行时,JS在用户的浏览器中执行。https://www.javascript.com/.(比如推迟异步),这将有助于WordPress网站加载更快,运行更顺畅,为用户提供更好的体验。

为什么添加加载策略?

来自Web年鉴项目的数据(查询)表示渲染阻塞JavaScript是web上的一个严重问题,77%的移动页面在文档中有渲染阻塞脚本<头部>.这个查询显示出大约40%的WordPress网站将从延迟附加脚本中受益。正在添加推迟异步to-script标记可以在不“阻止”页面加载其余部分的情况下加载脚本,从而使站点的响应速度更快,整体用户体验更好。

目前,WordPress核心以及插件和主题将脚本注册到wp_排队_脚本和/或wp_注册_脚本功能。尽管这些功能包括控制脚本位置的功能(使用英尺(_F)参数),它们不支持添加现代属性,例如推迟异步脚本标记。 

要添加异步推迟如今,开发人员必须采用灵活性较差、更脆弱的方法,例如在输出点直接过滤标记(使用脚本加载程序标记 滤波器过滤器 过滤器是两种类型的挂钩之一https://codex.wordpress.org/Plugin_API/挂钩。它们为函数修改其他函数的数据提供了一种方法。它们是Actions的对应物。与Actions不同,过滤器是以孤立的方式工作的,不应该有副作用,例如影响全局变量和输出。),或处理标签标签 Subversion中的目录。WordPress使用标签来存储版本(3.6、3.6.1等)的单个快照,这是版本控制系统中标签的常见约定。(不要与帖子标签混淆。)直接使用输出wp_print_script_tag(打印脚本标记)wp脚本属性过滤器。

使用第一种方法并直接过滤标签很容易被破坏:例如,如果两个插件都试图过滤标签,或者标签已经具有意外属性(例如,添加推迟到已具有的标记异步). 使用第二种方法,开发人员必须小心地处理依赖关系并手动输出——脚本API通常有助于处理这些事情。

装载策略的工作原理

开发人员在注册或排队脚本时指定加载策略。例如推迟当在页面加载周期中不需要立即使用脚本时,可以指定策略。WordPress将根据每个策略的逻辑确定哪些脚本可以实际使用策略。例如,确保脚本按其排队顺序执行,推迟只有依赖于脚本的每个脚本都可以延迟时,才能在脚本上使用。内联脚本标记添加了wp_add_inline脚本还将考虑确保适当的执行顺序。

该实现将附带几个初始内置加载策略:推迟,异步,以及默认值舞台调度行为。

超出此功能的范围

加载策略可以启用直接控制脚本标记属性。这个想法最初是10年前在#22249并考虑了几种方法 为bug报告和bug跟踪器上的功能开发创建。包括一个脚本属性过滤器。本提案后退一步,旨在更全面、更直接地解决脚本加载策略方面的问题,同时避免暴露直接属性控制的潜在复杂性。

值得注意的是,已经可以控制wp_排队_脚本标签直接使用脚本加载程序标记过滤器。然而,这是一种有点“蛮力”的方法,由于它没有考虑依赖性,并且多个插件可以在同一个标签上采取冲突的操作,因此它是有限的和脆弱的。 

此功能的潜在问题是什么?

将此功能添加到WordPress脚本API的一个主要问题是可能会引入一个突破性的更改。wp_排队_脚本是WordPress核心中的一个基本API,任何突破性的更改都可能产生广泛的影响。可能的破坏是添加中建议的自定义属性的一个可能原因#22249从未添加到核心。

这项新提议旨在确保100%向后兼容性,导致零破碎险.装载策略将确保所有现有用途继续按预期运行;例如,传递布尔值英尺(_F)属性仍将控制脚本位置。此外,它还将确保脚本继续按照排队顺序执行–如上文“加载策略如何工作”部分所述。

结论和后续步骤

让开发人员能够指定加载策略,这将使他们能够使用更高级的JavaScript加载方法,同时确保排队脚本以正确的顺序执行。“战略”方法也是前瞻性的:随着网络的发展,可以开发新的战略并提供给WordPress开发人员。收集反馈意见后,我们将继续讨论实施方法,并最终提出补丁补丁 一种特殊的文本文件,通过标识添加、删除和更改的文件和行来描述代码的更改。它也可以称为差异。补丁可以是应用到代码库进行测试。.

你试过用吗推迟异步使用WordPress(或者你已经使用了)?你认为这一增强将如何改变这种情况?请在下面的评论中留下您对此提案的反馈,如果可以,请参加我们的每周活动绩效团队聊天室,我们可能会在那里讨论这个建议。

多亏了@弗利克索斯90,@推特新闻@mxbclang语言感谢撰写和审阅这篇文章的帮助,以及许多已经加入到围绕这一增强功能的讨论中的贡献者。

#核心,#特色项目,#javascript脚本,#性能,#建议

WordPress包每两周向npm发布一次

这是对去年帖子的后续更新:将WordPress包发布到npm值得提醒的是,我们在WordPress组织.

TLDR;通过与双向同步,我们使WordPress包发布到npm更加可预测古腾堡古腾堡 古腾堡项目是WordPress的新编辑器界面。编辑器改进了创建新内容的过程和体验,使编写丰富内容变得更加简单。它使用“块”来增加丰富性,而不是短代码、自定义HTML等。https://wordpress.org/gutenberg网站/ 插件插件 插件是一个包含一组功能的软件,可以添加到WordPress网站。他们可以为你的WordPress网站扩展功能或添加新功能。WordPress插件是用PHP编程语言编写的,并与WordPres无缝集成。这些可以在WordPress.org插件目录中免费https://wordpress.org/插件/或者可以是第三方基于成本的插件RC1释放。我们不再需要将这个过程与WordPress主要版本紧密结合。

修订的npm发布分支策略

古腾堡仓库仍然遵循WordPress SVN存储库每个主要WordPress版本的分支策略。除此之外,还有另外两个特殊分支控制npm发布工作流,它们的用法如下:

  • 这个wp/最新 分支分支 Subversion中的目录。WordPress使用分支来存储每个主要版本(3.9、4.0等)的最新开发代码。然后使用该分支的任何次要版本的代码更新分支。有时,WordPress的主要版本及其次要版本统称为“分支”,例如“4.0分支”。包含与使用最新的分布标签标签 Subversion中的目录。WordPress使用标签来存储版本(3.6、3.6.1等)的单个快照,这是版本控制系统中标签的常见约定。(不要与帖子标签混淆。)。这里的目标是使这个分支与上一个Gutenberg插件版本同步,唯一的例外是未计划的独立Bugfix包版本(请参阅下文)。
  • 这个wp/下一个分支包含与使用下一个分发标签。它始终与同步大旅行箱分支。项目应仅将这些包用于开发或测试目的。
  • 古腾堡分行水处理/*(示例工作压力/6.0)针对特定的WordPress主要版本主要版本 由前两个数字(3.6)标识的发布,是整个发布周期和功能开发的重点。WordPress对主要发布版本使用小数点计数,因此2.8、2.9、3.0和3.1是连续的,并且在范围上具有可比性。(包括其进一步的次要增量)基于wp/最新古腾堡分支就在上一个古腾堡发行版之后,计划包含在下一个主要的WordPress发行版中。

发布类型及其时间表:

  • 同步Gutenberg插件(最新的dist标记)–根据新创建的释放/*(示例释放/12.8)使用古腾堡插件的RC1版本进行分支。
  • WordPress发布(补丁dist标记)–发布由水处理/*(示例工作包/6.0)分支。一旦我们达到WordPress主要发行周期的临界点(通常在贝塔贝塔 一种预先发布的软件,分发给大量用户在真实条件下进行试用。Beta版已经在内部进行了alpha测试,在外观、感觉和功能上与最终产品相当接近;然而,设计更改经常作为过程的一部分发生。1) 在那里,我们只有cherry-pick从Gutenberg存储库提交到WordPress核心核心 核心是运行WordPress所需的一组软件。核心开发团队构建WordPress。,我们使用工作压力/*分支(创建自wp/最新)用于npm发布补丁dist-tag(分配标签)。也可以使用较旧的分支来后端口后端口 端口是指来自一个分支(或主干)的代码合并到另一个分支或主干中。WordPress点发布中的一些更改是将代码从主干反向移植到发布分支的结果。WordPress Core相应旧版本的错误或安全修复。
  • 开发版本(下一个dist标签)–当需要测试即将到来的更改时,也可以随时执行开发发布。

还有一个选项可以随意执行Standalone Bugfix Package Releases。它只应保留给关键用户缺陷缺陷 错误是错误或意外结果。性能改进、代码优化和被视为增强,而不是缺陷。功能冻结后,只处理错误,回归(与前一版本相反的更改)是最高优先级。必须发布到的修复程序或安全版本净现值法常规循环之外。

完整的文件在中提供阻止阻止 块是一个抽象术语,用于描述使用WordPress编辑器组合在一起形成网页内容或布局的标记单元。这个想法结合了过去可能通过短代码、自定义HTML实现的概念,并将发现嵌入到单一一致的API和用户体验中。编辑手册。

使用运行npm发布githubgithub GitHub是一个提供git存储库在线实现的网站,其他开发人员可以轻松地共享、复制和修改这些存储库。公共存储库可以免费托管,私有存储库需要付费订阅。GitHub引入了“拉请求”的概念,在将贡献者在分支中所做的代码更改合并为存储库所有者之前,可以对其进行审查和讨论。https://github.com/工作流

虽然npm发布被配置为每两周自动进行一次,作为Gutenberg插件发布工作流的一部分,但仍有可能需要执行其他发布类型。要启动该过程,请转到Gutenberg的GitHub存储库的Actions选项卡,并找到“发布npm包”操作注意蓝色横幅上写着“此工作流具有工作流_发货事件触发器。“,并展开其右侧的“运行工作流”下拉列表。

根据包的类型,有三种方法可以将包发布到npm:

  • WordPress主要版本–选择水处理从“Release type”下拉列表中输入十、Y(示例5.9)在“WordPress主要版本”输入字段中。
  • 开发版本–选择发展从“发布类型”下拉列表中选择,并将“WordPress主要发布”输入字段留空。
  • Bugix版本–选择错误修复程序从“发布类型”下拉列表中选择,并将“WordPress主要发布”输入字段留空。

最后,按下绿色的“运行工作流”按钮。它触发了npm发布工作,然后需要得到古腾堡核心团队成员的批准。

测试JavaScript脚本JavaScript脚本 JavaScript或JS是一种面向对象的计算机编程语言,通常用于在web浏览器中创建交互式效果。WordPress广泛使用JS以获得更好的用户体验。当PHP在服务器上执行时,JS在用户浏览器中执行。https://www.javascript.com/.特定主要WordPress版本的代码

与WordPress主要版本相关的npm发布修订工作流中包含了一个有趣的奖励。现在可以使用分发标签(WordPress 5.8.x示例):

npm安装@wordpress/块编辑器@wp-5.8

也可以用一个命令更新项目中的所有WordPress包:

npx@wordpress/scripts包更新--dist-tag=wp-5.8

支持将WordPress包切换到与以下主要WordPres版本完全一致的版本:5.7,5.8,5.96.


谢谢你@安娜扎祖@撬棍感谢他们在撰写本文时分享的反馈。

#核心-js,#javascript脚本,#npm包

建议:更改JavaScript编码标准以实现更完美的兼容性

我建议切换到Prettier代码格式化工具的原始版本古腾堡古腾堡 古腾堡项目是WordPress的新编辑器界面。编辑器改进了创建新内容的过程和体验,使编写丰富内容变得更加简单。它使用“块”来增加丰富性,而不是短代码、自定义HTML等。https://wordpress.org/gutenberg网站/项目并将其更新为最新的2.5版本。因此,我们应该对现有的WordPress JavaScript编码标准以尊重Prettier的能力。

C类ode格式挑战

值得提醒的是,从2017年开始,这个话题已经讨论过好几次了,当时对使用Prettier的初步探索始于WordPress/gutenberg#2819。在这段时间里,Prettier的维护者没有改变他们的想法,即增加对父母之间空间的支持(())和括号([])尽管在中共享了许多请求更漂亮/更漂亮#1303来自用户(包括WordPress社区)。这就是为什么我们决定申请第一批JavaScript编码标准修订两年后,使用Automatic开发人员开发的Prettier的分叉版本。它允许我们保持与用于PHP程序PHP程序 WordPress主要使用的web脚本语言。WordPress需要PHP 5.6.20或更高版本在WordPress代码库中。特别是,要遵守这些规则:

在代码中自由使用空格。“如果有疑问,请将其隔开。”

WordPress公司JavaScript脚本JavaScript脚本 JavaScript或JS是一种面向对象的计算机编程语言,常用于在web浏览器中创建交互效果。WordPress广泛使用JS以获得更好的用户体验。当PHP在服务器上执行时,JS在用户的浏览器中执行。https://www.javascript.com/.与jQuery样式指南相比,标准更喜欢略宽的空白规则。这些偏差是为了保持WordPress代码库中PHP和JavaScript文件之间的一致性。

问题是,我们最终在古腾堡项目中发现了一个过时的Prettier分支,一年多都没有得到任何更新。使用自定义版本Prettier的唯一动机是它的附加功能覆盖了括号和括号周围空格的格式行为。与此同时,去年Prettier发布了三个小版本,其中包含了一长串新功能:

古腾堡项目不再仅使用JavaScript进行开发。代码库的某些部分使用TypeScript几个月前我们达成协议。这意味着我们无法使用为TypeScript语言的较新版本以及未来对JavaScript语言的潜在添加而添加的改进。我们在社区使用的共享Prettier配置中使用的一个配置选项中也添加了一个弃用选项。事实证明,它阻止使用@wordpress/prettier-config包含第三方项目中最新版本Prettier的软件包,如中所述WordPress/gutenberg#37516最后,我们在WordPress/古腾堡#21872社区成员使用@wordpress/脚本@wordpress/eslint插件Prettier的分叉版本无法在其项目中正确安装的包。好消息是,切换到原来的Prettier将解决以上所有问题!

很快,当您试图在项目中保持一致的编码风格时,自动代码格式化为您节省了大量的时间和精力,这一点很明显。这就是为什么我们也开始使用Prettier来格式化它在Gutenberg项目中支持的其他类型的文件,比如JSON格式JSON格式 JSON或JavaScript Object Notation是结构化数据的最小可读格式。它主要用于在服务器和web应用程序之间传输数据,作为XML的替代。、YAML、降价。我们也考虑对CSS公司CSS公司 级联样式表。接下来是SCSS。

修订修订 WordPress修订系统存储每个保存的草稿或发布的更新的记录。修订系统允许您通过拖动滑块(或使用“下一步”/“上一步”按钮)查看每个修订中所做的更改。显示屏显示每个版本中的更改内容。JavaScript编码标准

我建议我们对WordPress JavaScript编码标准切换到Prettier的最新可用版本(编写时为2.5)。这个摘录摘录 摘录是对博客文章或页面的描述,默认情况下会显示在博客存档页面、搜索结果(SERP)和社交媒体上。对于一个SEO插件,摘录也可能位于该插件的metabox中。最重要的修订如下。

-为了与WordPress PHP编码标准保持一致,一些空白规则有所不同。+为了与[Prettier]保持一致,一些空白规则有所不同(https://prettier.io网址)格式化工具。
-将对所有新的或更新的JavaScript代码进行审查,以确保其符合标准并通过JSHint。+将审查所有新的或更新的JavaScript代码,以确保其符合标准并通过[ESLint](网址:https://eslint.org).
-在代码中自由使用空格。“如果有疑问,请将其隔开。”
-任何!否定运算符应该有一个空格*+任何!否定运算符不应该有后面的空格。
-始终在元素和参数周围包含额外的空格:-数组=[a,b];-foo(arg);-foo('string',object);-foo(选项,对象[属性]);-foo(节点,“属性”,2);-prop=对象['default'];-firstArrayElement=arr[0];+不要在元素和参数周围包含额外的空格:+arg=[a,b];+foo(arg);+foo(“字符串”,对象);+foo(选项,对象[属性]);+foo(节点,“属性”,2);+prop=对象[默认值];+firstArrayElement=arr[0];
-变量i;--if(条件){-doSomething(“带字符串”);-}else if(otherCondition){-其他事物({-键:值,-otherKey:otherValue-    } );-}其他{-somethingElse(真的);-}- -//与jQuery不同,WordPress喜欢在!否定运算符。-//这也是为了符合我们的PHP标准。-while(!条件){-迭代++;-}- -对于(i=0;i<100;i++){-对象[数组[i]]=someFn(i);-$('.container').val(数组[i]);-}- -尝试{-//表达式-}捕获(e){-//表达式-}+变量i;++if(条件){+doSomething(“用字符串”);+}else if(otherCondition){+其他东西({+键:值,+otherKey:otherValue,+	});+}其他{+其他事情(真的);+}+ +while(!条件){+迭代++;+}++对于(i=0;i<100;i++){+对象[数组[i]]=someFn(i);+$('.container').val(数组[i]);+}++尝试{+//表达式+}捕捉(e){+//表达式+}

您可以预览对Gutenberg代码库的影响githubgithub GitHub是一个提供git存储库在线实现的网站,其他开发人员可以轻松地共享、复制和修改这些存储库。公共存储库可以免费托管,私有存储库需要付费订阅。GitHub引入了“拉请求”的概念,在将贡献者在分支中所做的代码更改合并为存储库所有者之前,可以对其进行审查和讨论。https://github.com/在中探索性拉取请求。相同的更改将影响推荐的工具阻止 块是一个抽象术语,用于描述使用WordPress编辑器组合在一起形成网页内容或布局的标记单元。这个想法结合了过去可能通过短代码、自定义HTML实现的概念,并将发现嵌入到单一一致的API和用户体验中。类似开发@wordpress/创建块@wordpress/脚本.

何时做出决定?

让我们计划做出决定(1月25日更新)自本帖发布之日起数周。这应该有足够的时间进行讨论和提问。

#编码风格,#编码标准,#javascript脚本

最终确定本机TypeScript建议

大家好!我再次回来更新TypeScript提案。以前在后续工作岗位我说过两周后我们会做出决定。从那以后已经有好几个月了,是时候做决定了!

虽然对提案有一些反馈,但似乎没有提出任何建议阻止 块是一个抽象术语,用于描述使用WordPress编辑器组合在一起形成网页内容或布局的标记单元。这个想法结合了过去可能通过短代码、自定义HTML实现的概念,并将发现嵌入到单一一致的API和用户体验中。将本机TypeScript集成到古腾堡古腾堡 古腾堡项目是WordPress的新编辑器界面。编辑器改进了创建新内容的过程和体验,使编写丰富内容变得更加简单。它使用“块”来增加丰富性,而不是短代码、自定义HTML等。https://wordpress.org/gutenberg网站/项目。事实上,有些套餐(比如组成组件)我们已经看到了大量引入的原生TypeScript。事实上,组成今天是全类型的,如果没有古腾堡的原生TypeScript支持,情况就不会如此。

因此,我想正式宣布Gutenberg项目支持原生TypeScript。我们将继续遵循后续提案中提出的指导方针,并在这里转载给后代。

对于现有代码:

  • 默认为使用JavaScript脚本JavaScript脚本 JavaScript或JS是一种面向对象的计算机编程语言,常用于在web浏览器中创建交互效果。WordPress广泛使用JS以获得更好的用户体验。当PHP在服务器上执行时,JS在用户的浏览器中执行。https://www.javascript.com/.
  • 如果可以用JSDoc简单地键入内容,请使用JSDoc
  • 如果有复杂类型,但JSDoc通常仍足以使用这些类型,那么可以将复杂类型提取为仅限于类型类型.ts要导入JSDoc的文件
  • 如果无法使用JSDoc表示类型,或者如果JSDoc会使函数类型的功能过于复杂,请将其转换为TypeScript

对于新代码:

在新代码的“低级包”(定义如下)中工作时,请使用TypeScript。否则,请遵循为现有代码设计的相同模式。

低级包:

低级包是指:

  1. 提供公众美国石油学会美国石油学会 API或应用程序编程接口是一种软件中介,允许程序以有限的、明确定义的方式相互交互和共享数据。;
  2. 不经常参与.

古腾堡的编码指南将进行更新,以反映TypeScript的这种方法。

#javascript脚本

核心JavaScript办公时间的更改

出席核心核心 核心是运行WordPress所需的一组软件。核心开发团队构建WordPress。 JS公司JS公司 JavaScript是一种通常在浏览器中执行的web脚本语言。通常用于高级用户界面和行为。过去几周办公时间很短,所以最近的聊天在场的人决定我们现在改成双向节奏。以下是正在发生的事情的快速摘要:

  • 核心JavaScript脚本JavaScript脚本 JavaScript或JS是一种面向对象的计算机编程语言,常用于在web浏览器中创建交互效果。WordPress广泛使用JS以获得更好的用户体验。当PHP在服务器上执行时,JS在用户的浏览器中执行。https://www.javascript.com/.办公时间为每两周一次,时间为同一时段(UTC 15:00UTC),下一次会议将于7月27日举行。
  • 项目仍然可以建议/添加到此处打开滚动议程.
  • 每当有需要更多关注的事情时,建议安排一次专门的会议,让感兴趣的各方在#核心-js 松弛(Slack)松弛(Slack) Slack是一个协作群聊平台https://slack.com/WordPress社区在https://make.wordpress.org/chat/.频道进行讨论。

提醒您#核心-js频道和办公时间聊天旨在涵盖所有WordPress核心的JavaScript、所有JavaScript基础设施、构建、lint或测试JavaScript代码的工具,以及关于编码风格、使用的库等的高层讨论。因此有一些区别(尽管可能有一些重叠)从发生在#核心编辑器主要集中于古腾堡古腾堡 古腾堡项目是WordPress的新编辑器界面。编辑器改进了创建新内容的过程和体验,使编写丰富内容变得更加简单。它使用“块”来增加丰富性,而不是短代码、自定义HTML等。https://wordpress.org/gutenberg网站/项目及其在WordPress中的实现。

#javascript脚本

跟进原生TypeScript提案

有意将本机TypeScript集成到古腾堡古腾堡 古腾堡项目是WordPress的新编辑器界面。编辑器改进了创建新内容的过程和体验,使编写丰富内容变得更加简单。它使用“块”来增加丰富性,而不是短代码、自定义HTML等。https://wordpress.org/gutenberg网站/到目前为止,知识库已经获得了压倒性的积极反馈。然而,也有一些回应表达了对引入一种新技术的担忧,这将使贡献者难以理解。这一后续行动有望通过改进和澄清原始提案中的一些想法来解决其中一些关切。

在本提案中,古腾堡包装的消费者没有任何改变(例如阻止 块是一个抽象术语,用于描述使用WordPress编辑器组合在一起形成网页内容或布局的标记单元。这个想法结合了过去可能通过短代码、自定义HTML实现的概念,并将发现嵌入到单一一致的API和用户体验中。开发人员)。JavaScript脚本JavaScript脚本 JavaScript或JS是一种面向对象的计算机编程语言,常用于在web浏览器中创建交互效果。WordPress广泛使用JS以获得更好的用户体验。当PHP在服务器上执行时,JS在用户浏览器中执行。https://www.javascript.com/.仍然是与美国石油学会美国石油学会 API或应用程序编程接口是一种软件中介,允许程序以有限的、明确定义的方式相互交互和共享数据。如果区块开发人员选择在自己的项目中使用TypeScript,我们将逐步改进工具和打字,使他们的体验更好。

好的,让我们回答这个问题:TypeScript什么时候在存储库中使用?要回答这个问题,我们必须首先记住,我们不会在没有充分理由的情况下进行重构,当然也不仅仅是为了重构:https://developer.wordpress.org/coding-standards/wordpress-coding-sstandards/javascript/#code-重构

“代码重构不应该仅仅因为我们可以”

让我们记住为什么引入TypeScript和强类型函数很重要:

  • 通过自动代码完成(如Intellisense)和其他相关工具提供更好的开发人员体验
  • 通过对函数内部及其用法进行更好的静态分析,对我们的代码更有信心

何时对现有代码使用TypeScript

因此,考虑到这一点,我想提议@吉奥罗牌手表的方法,用于处理何时对现有文件使用TypeScript:

  • 默认使用JavaScript
  • 如果可以用JSDoc简单地键入内容,请使用JSDoc
  • 如果有复杂类型,但JSDoc通常仍足以使用这些类型,那么可以将复杂类型提取为仅限于类型类型.ts要导入JSDoc的文件
  • 如果无法使用JSDoc表示类型,或者如果JSDoc会使函数类型的功能过于复杂,请将其转换为TypeScript

当然,这只适用于支持本机TypeScript的地方,目前这些地方仅限于大多数较低级别的包,这些包是主要的初始输入目标。这与最初提案中的说法一致,即“古腾堡的大部分可能永远保留为普通的旧JavaScript。”

它不包括现有包中的全新代码或全新包形式的新代码。

何时对新代码使用TypeScript

因此,对于现在很少添加全新包的情况,如果所有依赖项都是类型化的,我建议将它们添加到本机TypeScript中。同样,完全键入的包或当前正在处理的包也可以完全键入(请参见#18838打印和正在处理的包裹清单)落入类别类别 “类别”分类法可以将共享共同纽带的帖子/内容分组在一起。类别是预定义的,范围广泛。“较低级别的包”此处描述在下一节中,应该在TypeScript中添加新代码。

否则,新代码应该遵循上面为现有文件规定的相同逻辑,基本上只在绝对必要时使用TypeScript,而首选JSDoc类型的JavaScript。

较低级别的包

关于“低级包”的注释。我们可以通过说明低级包是指:

  1. 提供公共API;
  2. 不经常参与.

总结

总之,我想提出以下建议:

  • 重构现有代码以添加类型时,请遵循上面的脚本。
  • 对于新的程序包,当a)所有程序包依赖项都是类型化的时,以及b)当它们属于上面定义的“较低级别程序包”类别时,请使用本机TypeScript。
  • 对于现有包中的新代码,请遵循与重构现有代码相同的上述脚本。

如果社区接受了这一点,我将打开一个PR来更新存储库中的JavaScript编码指南,以反映这一点。更新将包括上述脚本。

何时做出决定?

我想在这篇后续文章发表后两周内做出决定。这将为讨论和提问提供充足的时间。

#javascript脚本

将WordPress包发布到npm

WordPress项目已经在4年多前开始向最大的软件包存储库npm发布其软件包。截至今日,在WordPress组织.

流程的最新更新记录在githubgithub GitHub是一个提供git存储库在线实现的网站,其他开发人员可以轻松地共享、复制和修改这些存储库。公共存储库可以免费托管,私有存储库需要付费订阅。GitHub引入了“拉请求”的概念,在将贡献者在分支中所做的代码更改合并为存储库所有者之前,可以对其进行审查和讨论。https://github.com/在里面PR#29028。我想分享一些有关该过程中最新添加内容的详细信息,并总结发布的总体策略。

开发版本

WordPress(文字出版社)大旅行箱大旅行箱 Subversion中的一个目录,包含为下一个主要发布周期做准备的最新开发代码。如果您运行的是“trunk”,那么您使用的是最新版本。可以关闭或处于“功能-冻结”模式。通常,这发生在WordPress正在进行的发布周期中(就像现在的WordPress5.7),这需要几个星期。这意味着在正在进行的WordPress中,软件包没有得到任何增强和新功能主要版本主要版本 由前两个数字(3.6)标识的发布,是整个发布周期和功能开发的重点。WordPress对主要发布版本使用小数点计数,因此2.8、2.9、3.0和3.1是连续的,并且在范围上具有可比性。过程。

引入了另一种版本,以解决前面提到的限制,并阻止依赖WordPress包的项目的正在进行的开发。它利用了包裹分发标签这样就可以根据npm指南使用未来版本的代码库:

默认情况下最新的 标签标签 Subversion中的目录。WordPress使用标签来存储版本(3.6、3.6.1等)的单个快照,这是版本控制系统中标签的常见约定。(不要与帖子标签混淆。)由npm用于标识包的当前版本,并且npm安装<pkg>(没有任何@<版本>@<标签>说明符)安装最新的标签。通常,项目仅使用最新的标记用于稳定的发布版本,并使用其他标记用于不稳定的版本,如预发布版本。

npm文档

在这种情况下下一个分发标签用于发布包的转移版本。开发人员可以通过键入以下内容在项目中安装软件包:

npm安装@wordpress/组件@下一个

发布过程通过单个命令完全自动化:

 ./bin/plugin/cli.js npm-next文件

负责发布的人只需要运行脚本,其他一切都是通过终端中的交互进行的。

幕后wp/下一个 分支分支 Subversion中的目录。WordPress使用分支来存储每个主要版本(3.9、4.0等)的最新开发代码。然后使用该分支的任何次要版本的代码更新分支。有时,WordPress的主要版本及其次要版本统称为“分支”,例如“4.0分支”。与最新版本分支同步(释放/*)为创建古腾堡古腾堡 古腾堡项目是WordPress的新编辑器界面。编辑器改进了创建新内容的过程和体验,使编写丰富内容变得更加简单。它使用“块”来增加丰富性,而不是短代码、自定义HTML等。https://wordpress.org/gutenberg网站/ 插件插件 插件是一个包含一组功能的软件,可以添加到WordPress网站。他们可以为你的WordPress网站扩展功能或添加新功能。WordPress插件是用PHP编程语言编写的,并与WordPres无缝集成。这些可以在WordPress.org插件目录中免费https://wordpress.org/插件/或者可以是第三方基于成本的插件。为了避免在包的版本控制中发生冲突,我们总是包括最新提交的例如@文字出版社/块编辑器@5.2.10-next.645224df70.0.

发布类型及其时间表

值得澄清的是,Gutenberg插件使用WordPress包的本地副本,因为它们是在同一存储库中开发的。对于WordPress来说,这是一个完全不同的故事核心核心 核心是运行WordPress所需的一组软件。核心开发团队构建WordPress。它使用来自npm注册表的包。

以下列表包括向npm发布WordPress包时支持的发布类型的完整列表:

  • 同步WordPress中继 (最新的dist-tag)–当WordPress Core中没有“feature-freeze”模式时,基于Gutenberg插件的新稳定版本,每两周发布一次。否则,仅缺陷缺陷 错误是错误或意外结果。性能改进、代码优化和被视为增强,而不是缺陷。功能冻结后,只处理错误,回归(与前一版本相反的更改)是最高优先级。在每一次修复之前手动包含并发布到npm贝塔贝塔 一种预先发布的软件,分发给大量用户在真实条件下进行试用。Beta版已经在内部进行了alpha测试,在外观、感觉和功能上与最终产品相当接近;然而,设计变更经常作为过程的一部分发生。钢筋混凝土发布候选 作为版本发布周期的最后阶段之一,该版本向公众发出了最终发布的信号。另请参见α(β).以下WordPress版本。有一个脚本可以自动执行该过程:./bin/命令.js npm最新版本.
  • WordPress次要版本 (补丁dist标记)–仅当需要将错误修复或安全版本反向移植到WordPress Core时。这是一个手动过程,需要选择单个提交并以执行结束npm运行发布:补丁命令。
  • 开发版本 (下一个dist-tag)–至少每两周发布一次古腾堡插件的RC版本。有一个脚本可以自动执行该过程:./bin/commander.js npm-next.

还有一个选项可以执行独立软件包版本随心所欲。它应该只用于必须发布到的关键错误修复或安全版本净现值法超出常规WordPress发布周期。这是一个手动过程,需要执行许多步骤npm运行发布:prod命令。


我们不断寻求反馈,以改进有关npm包的流程。WordPress核心的工作流工作得很好,在将更改反向移植到阻止 块是一个抽象术语,用于描述使用WordPress编辑器组合在一起形成网页内容或布局的标记单元。这个想法结合了过去可能通过短代码、自定义HTML实现的概念,并将发现嵌入到单一一致的API和用户体验中。Gutenberg插件中的编辑器。让我们知道我们还可以做些什么来改善使用npm WordPress包的项目的体验。

#核心-js,#javascript脚本,#npm包

JavaScript核心聊天摘要:2020年7月21日

这是对JavaScript脚本JavaScript脚本 JavaScript或JS是一种面向对象的计算机编程语言,通常用于在web浏览器中创建交互式效果。WordPress广泛使用JS以获得更好的用户体验。当PHP在服务器上执行时,JS在用户浏览器中执行。https://www.javascript.com/. 核心核心 核心是运行WordPress所需的一组软件。核心开发团队构建WordPress。聊天时间2020年7月21日星期二,14:00 UTC。你可以阅读Slack中的完整会议讨论.

如果你有一个项目想在下次会议上讨论,请将其添加到下一个项目中议程文件.

@木虱托管的

今天没有议程项目,所以@木虱直接搬到空地上

开放式地板:

@木虱30分钟后结束会议。

下一个聊天已打开2020年7月28日,星期二,14:00 UTC在中#核心-js频道打开松弛(Slack)松弛(Slack) Slack是一个协作群聊平台https://slack.com/WordPress社区在https://make.wordpress.org/chat/.。如果您有任何想讨论的内容,请将其添加到议程文件.

每周JavaScript新闻汇总

WordPress 5.5相关

许多开发说明开发说明 WordPress Core中的每个重要更改都记录在开发人员备注中(通常称为开发备注)。好的开发注释通常包括对更改的描述、导致此更改的决策,以及对开发人员应该如何处理此更改的描述。在WordPress发布周期的测试阶段,开发人员的笔记会发布在Make/Core博客上。当插件/主题作者和WordPress开发者需要意识到这些变化时,发布开发说明尤为重要。通常,所有开发注释都在候选发布阶段开始时编译到Field Guide中。以及与WordPress 5.5中的内容相关的帖子(针对阻止阻止 块是一个抽象术语,用于描述使用WordPress编辑器组合在一起形成网页内容或布局的标记单元。这个想法结合了过去可能通过短代码、自定义HTML实现的概念,并将发现嵌入到单一一致的API和用户体验中。本周分享了编辑器和JavaScript)。我认为在本周的综述中,将它们全部归类会很方便。

  • Dashicons库在WordPress 5.5中接收其最终更新。如果你在任何产品中使用它,它仍然可以在WordPress中使用,但是它可以很好地切换到使用@文字新闻/图标而不是打包(如果合适)。
  • 这个注册主题功能API已着陆。这允许在支持REST端点的主题功能上注册和公开自定义主题功能。
  • 在WordPress 5.5中,图像将默认情况下为惰性加载在防止布局变化方面做了很多工作。
  • WordPress 5.5中关于块图案.
  • WP 5.5中新的和修改的REST API端点。包括以下方面的注释:wp/v2/块类型,wp/v2/插件,wp/v2/区块目录,wp/v2/media/10/编辑、块渲染器路由更改和大多数主题收割台标题 你的网站的标题通常是人们会体验到的第一件事。位于页面顶部的刊头或页眉是网站外观的一部分。它可以影响访问者对您的内容和您/您组织的品牌的看法。它在不同的屏幕尺寸上也可能看起来不同。信息现在返回到wp/v2/主题端点。
  • 还有一些REST API参数和JSON模式更改即将到来。特别是,改进更多定义模式的选项的工作是令人愉快的。
  • 创建InterpolateElement已着陆。这对于翻译翻译 更改文本、单词和显示格式以支持另一种语言的过程(或结果)。另请参见本地化,国际化.字符串插值反应反应 React是一个JavaScript库,它使推理、构造和维护无状态和有状态用户界面变得容易。https://reactjs.org/.组件。

dotOrg新闻

#javascript脚本,#会议记录