Skip to content

Tutorial desarrollo de nuevos plugins

gdtel-cnig-develop edited this page Aug 30, 2024 · 12 revisions

! Página en desarrollo

En esta página vamos a ver paso a paso cómo crear un nuevo plugin, partiendo de tener en nuestro repositorio personal un fork de API-CNIG.

1./ Nos dirigimos a la carpeta plugins:

    cd API-CNIG/api-ign-js/src/plugins/

2./ Hacemos la instalación del paquete npm que nos ayudará a crear el plugin

    npm i api-cnig-create-plugin

3./ Lanzamos el comando para crear la estructura del plugin

    npx api-cnig-create-plugin

Este comando nos pedirá el nombre del plugin y si queremos instalar las dependencias npm útiles para el desarrollo de plugins. Para el ejemplo, usaremos el nombre «prueba» para el plugin.

3.1 Como alternativa a la herramienta de creación de plugin, existe una plantilla en la carpeta plugins (basic)

Si queremos usar la plantilla copiamos la carpeta basic y la pegamos en la misma carpeta de plugins. Tendremos que modificar el nombre a la carpeta y a todos los ficheros cambiando "basic" por el nombre de plugin que queramos. También, en los ficheros tendremos que cambiar las referencias a "basic" por el nuevo nombre del plugin.

4./ Nos vamos a la carpeta del plugin:

    cd ./prueba

5./ Ejecutamos el comando de instalación y levantado del servidor

    npm i
    npm start

En el caso de dar el error: SyntaxError: Unexpected token '??='. Hay que subir la versión de nodeJS a la v16.20.2

En el caso de dar algún error de Eslint o webpack, vamos a realizar los siguientes pasos:

5.1 Copiamos desde, por ejemplo, el plugin modal, el archivo package.json y lo pegamos en nuestra carpeta del plugin «prueba», modificando el nombre, versión y descripción

5.2 Copiamos desde, por ejemplo, el plugin modal, la carpeta webpack-config y lo pegamos en nuestra carpeta del plugin «prueba/webpack-config».

5.3 Ejecutamos:

    npm run fix

5.4 En el caso de dar el error: Unexpected use of file extension "json" for "../../api.json". En el archivo api-ign-js/src/plugins/prueba/src/facade/js/modal.js hay que modificar la línea "import api from '../../api.json';" por "import api from '../../api';"

5.5 Volvemos al punto 5.

6./ En este punto, podemos comenzar a desarrollar nuestro nuevo plugin a partir de los archivos que hay en ./src

7./ Una vez terminado el desarrollo, podemos comprobar que el plugin no tiene errores:

    npm run check

8./ Para arreglar la mayoría de errores que se comenten durante el desarrollo, se puede ejecutar el siguiente comando:

    npm run fix

Este comando está relacionado con eslint. Si se tiene instalada la extensión en vscode (https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint), se pueden ir comprobando los errores según se va programando.

9./ El siguiente paso es compilar el plugin:

    npm run build

10./ Y por último, para comprobar que la compilación ha ido bien, se puede volver a levantar el servidor y esta vez acceder a http://IP:Puerto/test/prod.html

    npm start 

11./ Una vez comprobado que nuestro plugin se ha compilado bien, se puede proceder a realizar el Pull Request al repositorio de API-CNIG

1.INICIO
   1.1. Componentes de la API-CNIG
   1.2. Documentación y Puntos de acceso
   1.3. Primeros pasos
   1.4. Diagrama API CNIG

2. MAPA
2.1. Capas

 ■ 2.1.1. Fuentes
   • 2.1.1.1. Capas vectoriales
     + Vector
     + WFS
     + GeoJSON
     + KML
     + MVT
     + OGCAPIFeatures
     + MBTilesVector
     + GenericVector
     + MapLibre
   • 2.1.1.2. Capas ráster
     + WMS
     + WMTS
     + TMS
     + XYZ
     + OSM
     + MBTiles
     + GenericRaster
     + GeoTIFF
   • 2.1.1.3. Capas rápidas
   • 2.1.1.4. Grupo de capas

 ■ 2.1.2. Simbolización
   • 2.1.2.1. Genérica
     + Puntos
     + Líneas
     + Polígonos
   • 2.1.2.2. Básica
     + Puntos
     + Líneas
     + Polígonos
   • 2.1.2.3. Avanzada
     + Coropletas
     + Proporcional
     + Categorías
     + Estadísticos
     + Mapas de Calor
     + Cluster
     + Línea de flujo
     + Composición

 ■ 2.1.3. Filtros

2.3.-Plugins

  > Creación de plugin en cliente

  » Tutorial de creación de un plugin

2.4. Paneles

  » Creación de panel desde cero sin controles

  » Tutorial Panel de un único control

  » Tutorial Panel de un único control con más de un botón

  » Tutorial Panel con más de un control

2.5. Eventos

  » Gestión de eventos
  » Gestión de eventos en controles personalizados

    2.6. Internacionalización

    2.7. Configuración

    2.8. Acceso librerías base

3. UTILIDADES

4. PROXY

5. API REST
 5.1. Parametrización API-REST
 5.2. Base de Datos API-REST
 5.3. API REST Actions
 5.4. Servicio de correos electrónicos
 5.5. Capas rápidas

6. PARAMETRIZACIÓN VISUALIZADORES

7. SOLUCIÓN DE PROBLEMAS

8. PROCESO DE VERSIONADO

9. GUÍA DE DESARROLLO
  > Guía para el desarrollo de API-CNIG
  » Tutorial desarrollo del núcleo de API-CNIG - (Cliente)
  > Guía de desarrollo de componentes
  » Tutorial desarrollo del núcleo de API-CNIG - (Servidor)
  > Guía de desarrollo de plugins
  » Tutorial desarrollo de plugins ya creados
  » Tutorial desarrollo de nuevos plugins
  > Guía de desarrollo de visualizadores con React

  > Compilación proyecto API-CNIG

Clone this wiki locally