Aller au contenu

Environnement de nœud de bureau

Modifier cette page

HagiCode Desktop est livré avec une chaîne d’outils de nœuds gérés par le bureau. Il ne prend pas en charge l’installation globale de Node sur votre ordinateur. Son objectif est de fournir aux flux de démarrage et d’exécution de Desktop une base d’exécution stable et vérifiable.

Lisez cette FAQ si vous voyez portable-fixed/toolchain en diagnostic, il faut savoir lequel node Desktop utilise, ou vous vous demandez pourquoi la version de votre système Node ne définit pas directement le comportement d’exécution de Desktop.

Desktop doit exécuter les mêmes flux de prise en charge sur tous les systèmes d’exploitation, canaux d’installation et environnements utilisateur. Si cela dépendait uniquement de l’installation Node existante de l’utilisateur, le support devrait gérer simultanément les versions obsolètes, les npm manquants, l’ordre des chemins incorrect, les packages globaux pollués et les politiques de registre spécifiques à l’organisation.

Desktop décrit cela plus spécifiquement comme un environnement d’exécution Node/npm isolé pour les CLI gérées au lieu de réutiliser l’environnement à l’échelle du système. Cette conception présente les principaux avantages suivants :

  • Versions cohérentes : Desktop utilise un contrat d’exécution Node 22 épinglé au lieu de deviner la version majeure locale de l’utilisateur.
  • Flux de démarrage contrôlés : les commandes gérées par le bureau peuvent préférer les commandes packagées node et npm entrées.
  • Limites de configuration claires : la configuration liée à la CLI est séparée de la configuration globale à l’échelle de l’hôte, de sorte que les mises à jour, la commutation et la récupération sont moins susceptibles d’être perturbées par les différences d’environnement système.
  • Conflits réduits : les chemins groupés s’appliquent aux environnements de commandes créés par Desktop et ne remplacent pas le nœud global de l’utilisateur dans son terminal.
  • Comportement de l’hôte non intrusif : cette isolation évite d’écrire l’état de la chaîne d’outils dans l’environnement Node/npm existant de l’utilisateur, et la désinstallation de Desktop ne perturbe pas le Node, le npm ou la configuration déjà présents sur la machine.

Lorsque vous exécutez Desktop normalement, Desktop préfère la chaîne d’outils Node installée avec l’application au lieu de lire d’abord l’installation de Node à partir de votre système. Cela permet de séparer la version Node de votre terminal de la version Node attendue par Desktop pendant son exécution.

Lorsque la chaîne d’outils groupée est activée, les environnements de commandes créés par Desktop placent les chemins de la chaîne d’outils groupés au premier plan. PATH. Par conséquent, même si une autre version de Node est installée sur votre système, les flux gérés par Desktop sont d’abord résolus en Node et npm intégrés à Desktop.

Cela affecte uniquement les environnements d’exécution créés par Desktop. Si tu cours node, npm, ou d’autres commandes directement dans votre terminal système, ils continuent d’utiliser votre environnement système et votre configuration shell normaux.

Dans les environnements de diagnostics ou de processus enfants démarrés par Desktop, vous pouvez voir une variable comme celle-ci :

Fenêtre de terminal
HAGICODE_PORTABLE_TOOLCHAIN_ROOT=/path/to/portable-fixed/toolchain

Cette variable signifie que l’environnement d’exécution géré par Desktop a reconnu la racine de la chaîne d’outils fournie. Voir ce chemin ne signifie pas que Desktop a modifié le nœud de votre système ; cela signifie uniquement que Desktop utilise l’environnement Node fourni avec l’application dans sa propre portée d’exécution.

Desktop conserve les fichiers d’exécution et les fichiers de package npm mutables à différents emplacements. Le chemin de la chaîne d’outils groupée tel que portable-fixed/toolchain/node est la source immuable du fichier géré par le bureau node et npm commandes. Les packages globaux gérés sont installés à la place dans le répertoire de données utilisateur Electron :

userData/node22/npmGlobal

Si Desktop se déplace ultérieurement vers le nœud 24, il utilise une arborescence de packages distincte telle que userData/node24/npmGlobal. Les packages installés pour le nœud 22 restent sur le disque mais ne sont pas traités comme installés pour le nœud 24 jusqu’à ce qu’ils soient réinstallés dans le nouveau préfixe Node-major.

L’état de dépendance du bureau vérifie uniquement l’actif userData/node<major>/npmGlobal préfixe. Les fichiers de package en dehors de ce préfixe sont ignorés par la gestion des dépendances.