插件

插件是一段独立的代码,用于为 Blockly 添加功能。例如,它可以添加自定义字段、定义新主题或提供自定义渲染程序。插件通常通过 npm 打包和分发。

如需快速了解插件,请观看我们的“插件概览”讲座 (2021)

如果您想创建自己的插件,请参阅添加插件

第一方和第三方插件

第一方插件由 Blockly 团队提供支持,并在 npm 上以 @blockly 作用域发布。它们可用于各种 Blockly 应用。

第三方插件由第三方独立维护和发布。它们可能更复杂、更具实验性,或者仅适用于范围较小的 Blockly 应用。

查找插件

安装插件

我们建议使用 npm 或 yarn 等软件包管理器安装插件。这样您就可以轻松接收更新。

  • 使用软件包管理器安装插件

    npm

    npm install @blockly/field-angle
    

    纱线

    yarn add @blockly/field-angle
    
  • 在不使用软件包管理器的情况下安装插件

    unpkg

    <script src="https://unpkg.com/@blockly/field-angle"></script>
    

    您也可以克隆包含该插件的 GitHub 代码库。对于第一方插件,此值为 blockly-samples

请查看该插件的自述文件,了解是否有其他安装说明。

使用插件

每个插件都不尽相同,因此请参阅插件的自述文件,了解如何使用该插件。以下示例展示了如何使用 @blockly/field-angle 插件

  1. 从插件导入代码。具体操作方法取决于您安装插件的方式。

    npm 或 yarn

    import Blockly from 'blockly';
    import {registerFieldAngle} from '@blockly/field-angle';
    

    unpkg

    您无需使用 import 语句。

    克隆的代码库

    import {registerFieldAngle} from 'path/to/plugin';
    
  2. 根据需要初始化插件。提供自定义字段的插件通常需要您注册字段:

    registerFieldAngle();
    
  3. 使用该插件。

    Blockly.common.defineBlocksWithJsonArray([
      {
        type: "my_angle_block",
        message0: "%1 degrees",
        args0: [
          {
            // Use @blockly/field-angle.
            type: "field_angle",
            name: "FIELDNAME",
            value: 45,
          },
        ],
        output: null,
        style: 'math_blocks'
      },
    ]);
    

    用于从 360 度刻度盘中选择角度的字段。

插件版本

blockly-samples 中的插件使用语义版本控制,这要求使用新的主要版本时必须进行破坏性更改。任何通过猴子补丁修补核心的插件都将具有主要版本 0,以表示处于初始开发阶段

大多数插件将 blockly 软件包作为 peerDependency(而非 dependency)包含在内。这是因为我们假设您已安装 Blockly。(如果不使用 Blockly,就没有必要使用插件。)这样,您就可以自行管理 Blockly 版本,但也需要您检查插件的 package.json,以确定其所需的最低 Blockly 版本。如果插件更新后需要更高版本的 Blockly,则会被视为破坏性更改,其主要版本号将会递增。

将插件添加到应用的 package.json 后,默认情况下,版本前面会添加一个尖括号:

"dependencies": {
  "@blockly/field-angle": "^5.0.12"
}

这样,npm 便会安装高于或等于所列版本的任何次要版本,因此版本 5.0.205.1.0 可以正常运行,但新的主要版本(例如 6.0.1)则不行。更新到新版 Blockly 后,最好检查您的任何插件是否也可以更新到新的主要版本。