プラグイン

プラグインは、Blockly に機能を追加する自己完結型のコードです。たとえば、カスタム フィールドの追加、新しいテーマの定義、カスタム レンダラのプロビジョニングなどです。プラグインは通常、npm でパッケージ化され、配布されます。

プラグインの概要については、プラグインの概要(2021)をご覧ください。

独自のプラグインを作成する場合は、プラグインを追加するをご覧ください。

ファーストパーティ プラグインとサードパーティ プラグイン

ファーストパーティ プラグインは Blockly チームによってサポートされており、npm の @blockly スコープで公開されています。これらは、さまざまな Blockly アプリケーションで使用できるように設計されています。

サードパーティ製プラグインは、独立してメンテナンスおよび公開されています。より複雑な機能や試験運用版の機能、またはより限定的な範囲の Blockly アプリケーションを対象とする機能が含まれる場合があります。

プラグインを探す

  • Blockly プラグインとデモをご覧ください。自社プラグインのライブデモをご覧いただけます。

  • npm で keyword:blockly-plugin を検索します。スコープが @blockly のプラグインは、Blockly チームによって公開されます。より幅広い結果を表示するには、keyword:blockly または blockly を検索します。

  • GitHub の blockly-samples/plugins ディレクトリ(ファーストパーティ プラグインのリポジトリ)をご覧ください。各プラグインには、動作と目的を説明する README があります。

プラグインをインストールする

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 です。

プラグインの README で、追加のインストール手順が記載されていないか確認します。

プラグインを使用する

プラグインごとに異なるため、プラグインの README でそのプラグインの使用方法を確認してください。次の例は、@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 パッケージは dependency ではなく peerDependency として含まれています。これは、Blockly がすでにインストールされていることを前提としているためです。(Blockly を使用せずにプラグインを使用する意味はありません)。これにより、Blockly のバージョンを自分で管理できますが、プラグインの package.json を確認して、必要な Blockly の最小バージョンを判断する必要があります。プラグインが更新され、新しいバージョンの Blockly が必要になった場合は、互換性を破る変更と見なされ、メジャー バージョンが引き上げられます。

アプリケーションの package.json にプラグインを追加すると、デフォルトでバージョンの前にキャレットが追加されます。

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

これにより、npm はリスト内のバージョン以上のマイナー バージョンをインストールできるようになります。そのため、バージョン 5.0.20 または 5.1.0 は機能しますが、6.0.1 などの新しいメジャー バージョンは機能しません。Blockly の新しいバージョンに更新するときは、プラグインを新しいメジャー バージョンに更新できるかどうかを確認することをおすすめします。