Construction et packaging

Une fois le développement du plugin terminé, vous devez passer par deux étapes — construction (compilation du code source) et packaging (génération d'un .tar.gz) — avant de pouvoir le distribuer à d'autres applications NocoBase.

Construire le plugin

La construction compile le code source TypeScript de src/ en JavaScript : le code client est packagé par Rsbuild, et le code serveur par tsup :

yarn build @my-project/plugin-hello

Les artefacts de build sont produits dans le répertoire dist/ à la racine du plugin.

Astuce

Si le plugin a été créé dans le dépôt source, la première construction déclenchera une vérification de type sur l'ensemble du dépôt, ce qui peut prendre du temps. Veillez à ce que les dépendances soient installées et que le dépôt soit dans un état compilable.

Packager le plugin

Le packaging compresse les artefacts de build en un fichier .tar.gz, pratique pour les téléverser dans d'autres environnements :

yarn nocobase tar @my-project/plugin-hello

Par défaut, le fichier de package est produit dans storage/tar/@my-project/plugin-hello.tar.gz.

Vous pouvez également utiliser le paramètre --tar pour combiner construction et packaging en une seule étape :

yarn build @my-project/plugin-hello --tar

Téléverser dans une autre application NocoBase

Téléversez et décompressez le fichier .tar.gz dans le répertoire ./storage/plugins de l'application cible. Voir Installer et mettre à niveau les plugins pour les détails.

Configuration de construction personnalisée

En général, la configuration de construction par défaut suffit. Si vous avez besoin de personnaliser — par exemple modifier le point d'entrée du package, ajouter des alias ou ajuster les options de compression — vous pouvez créer un fichier build.config.ts à la racine du plugin :

import { defineConfig } from '@nocobase/build';

export default defineConfig({
  modifyRsbuildConfig: (config) => {
    // Modifier la configuration de packaging Rsbuild côté client (src/client-v2)
    // Référence : https://rsbuild.rs/guide/configuration/rsbuild
    return config;
  },
  modifyTsupConfig: (config) => {
    // Modifier la configuration de packaging tsup côté serveur (src/server)
    // Référence : https://tsup.egoist.dev/#using-custom-configuration
    return config;
  },
  beforeBuild: (log) => {
    // Callback avant le démarrage de la construction, par exemple nettoyer les fichiers temporaires, générer du code, etc.
  },
  afterBuild: (log) => {
    // Callback après la fin de la construction, par exemple copier des ressources supplémentaires, sortir des statistiques, etc.
  },
});

Quelques points clés :

  • modifyRsbuildConfig — sert à ajuster le packaging client : ajouter des plugins Rsbuild, modifier les alias resolve, ajuster la stratégie de code splitting, etc. Les options de configuration sont décrites dans la documentation Rsbuild
  • modifyTsupConfig — sert à ajuster le packaging serveur : modifier target, externals, entry, etc. Les options de configuration sont décrites dans la documentation tsup
  • beforeBuild / afterBuild — hooks avant et après la construction, qui reçoivent une fonction log pour produire du logging. Par exemple, générer des fichiers de code dans beforeBuild, ou copier des ressources statiques vers le répertoire d'artefacts dans afterBuild

Liens connexes