Cette documentation a été traduite automatiquement par IA.
Commande
Dans NocoBase, les commandes vous permettent d'exécuter des opérations liées aux applications ou aux plugins directement depuis la ligne de commande. Il peut s'agir de tâches système, d'opérations de migration ou de synchronisation, d'initialisation de configurations, ou encore d'interactions avec des instances d'application en cours d'exécution. Les développeurs peuvent définir des commandes personnalisées pour leurs plugins, les enregistrer via l'objet app, et les exécuter dans la CLI sous la forme nocobase <commande>.
Types de commandes
Dans NocoBase, l'enregistrement des commandes se divise en deux catégories :
Commandes dynamiques
Utilisez app.command() pour définir des commandes de plugin. Celles-ci ne peuvent être exécutées qu'une fois le plugin activé. Les fichiers de commande doivent être placés dans le répertoire src/server/commands/*.ts du plugin.
Exemple
Description
app.command('echo'): Définit une commande nomméeecho..option('-v, --version'): Ajoute une option à la commande..action(): Définit la logique d'exécution de la commande.app.version.get(): Récupère la version actuelle de l'application.
Exécuter la commande
Commandes statiques
Enregistrées via Application.registerStaticCommand(), les commandes statiques peuvent être exécutées sans activer les plugins. Elles sont idéales pour les tâches d'installation, d'initialisation, de migration ou de débogage. Enregistrez-les dans la méthode staticImport() de la classe du plugin.
Exemple
Exécuter la commande
Description
Application.registerStaticCommand()enregistre les commandes avant l'instanciation de l'application.- Les commandes statiques sont généralement utilisées pour exécuter des tâches globales qui ne dépendent pas de l'état de l'application ou du plugin.
API des commandes
Les objets de commande offrent trois méthodes d'assistance optionnelles pour contrôler le contexte d'exécution de la commande :
Description de la configuration
-
ipc()Par défaut, les commandes s'exécutent dans une nouvelle instance d'application. Après avoir activéipc(), les commandes interagissent avec l'instance d'application en cours d'exécution via la communication inter-processus (IPC). Cette méthode est adaptée aux commandes d'opérations en temps réel (comme le rafraîchissement du cache ou l'envoi de notifications). -
auth()Vérifie si la configuration de la base de données est disponible avant l'exécution de la commande. Si la configuration de la base de données est incorrecte ou si la connexion échoue, la commande ne sera pas exécutée. Cette méthode est couramment utilisée pour les tâches impliquant des écritures ou des lectures dans la base de données. -
preload()Précharge la configuration de l'application avant d'exécuter la commande, ce qui équivaut à exécuterapp.load(). Convient aux commandes qui dépendent de la configuration ou du contexte du plugin.
Pour plus de méthodes API, veuillez consulter AppCommand.
Exemples courants
Initialiser les données par défaut
Recharger le cache pour une instance en cours d'exécution (mode IPC)
Enregistrement statique d'une commande d'installation

