Complementos

Un complemento es un fragmento de código independiente que agrega funcionalidad a Blockly. Por ejemplo, podría agregar un campo personalizado, definir un tema nuevo o proporcionar un renderizador personalizado. Por lo general, los complementos se empaquetan y distribuyen a través de npm.

Para obtener una introducción rápida a los complementos, consulta nuestra conferencia de descripción general de complementos (2021).

Si quieres crear tu propio complemento, consulta Cómo agregar un complemento.

Complementos propios y de terceros

El equipo de Blockly admite los complementos propios y los publica en el alcance @blockly en npm. Están diseñados para usarse en una amplia variedad de aplicaciones de Blockly.

Los complementos de terceros se mantienen y publican de forma independiente. Pueden ser más complejos, más experimentales o estar segmentados para un rango más reducido de aplicaciones de Blockly.

Busca un complemento

Instala un complemento

Recomendamos instalar complementos con un administrador de paquetes, como npm o yarn. Esto facilita la recepción de actualizaciones.

  • Cómo instalar un complemento con un administrador de paquetes

    npm

    npm install @blockly/field-angle
    

    hilo

    yarn add @blockly/field-angle
    
  • Cómo instalar un complemento sin un administrador de paquetes

    unpkg

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

    También puedes clonar el repositorio de GitHub que contiene el complemento. Para los complementos propios, este es blockly-samples.

Consulta el archivo readme del complemento para ver si hay instrucciones de instalación adicionales.

Cómo usar un complemento

Cada complemento es diferente, así que consulta el archivo readme del complemento para obtener información sobre cómo usarlo. En el siguiente ejemplo, se muestra cómo usar el complemento @blockly/field-angle:

  1. Importa el código del complemento. La forma de hacerlo depende de cómo hayas instalado el complemento.

    npm o yarn

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

    unpkg

    No es necesario que uses una sentencia import.

    Repositorio clonado

    import {registerFieldAngle} from 'path/to/plugin';
    
  2. Inicializa el complemento según sea necesario. Los complementos que proporcionan campos personalizados a menudo requieren que registres el campo:

    registerFieldAngle();
    
  3. Usa el complemento.

    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'
      },
    ]);
    

    Es un campo para elegir un ángulo de un dial de 360 grados.

Versiones del complemento

Los complementos de blockly-samples usan el control de versiones semántico, que requiere cambios rotundos para usar una nueva versión principal. Cualquier complemento nuevo que realice parches de mono en el núcleo tendrá una versión principal de 0 para indicar el desarrollo inicial.

La mayoría de los complementos incluyen el paquete blockly como un peerDependency en lugar de un dependency. Esto se debe a que suponemos que ya instalaste Blockly. (No tiene sentido usar un complemento sin usar Blockly). Esto te permite administrar la versión de Blockly por tu cuenta, pero también requiere que verifiques el package.json del complemento para determinar la versión mínima de Blockly que requiere. Si se actualiza un complemento para que necesite una versión más reciente de Blockly, se considera un cambio rotundo y se aumentará su versión principal.

Cuando agregas un complemento a la package.json de tu aplicación, la configuración predeterminada es incluir un signo de intercalación antes de la versión:

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

Esto permitirá que npm instale cualquier versión menor a la versión indicada o superior a ella, por lo que la versión 5.0.20 o 5.1.0 funcionará, pero no una versión principal nueva, como 6.0.1. Cuando actualices a una nueva versión de Blockly, te recomendamos que compruebes si alguno de tus complementos también se puede actualizar a una nueva versión principal.