


Écrit par Rosario De Chiara✏️
mise et asdf sont des outils conçus pour aider les développeurs à gérer plusieurs versions de langages et d'environnements de programmation. Les deux outils visent à simplifier le développement polyglotte en facilitant la gestion et le basculement entre les versions d'outils, ce qui constitue un défi courant lorsque l'on travaille avec différents langages et frameworks de programmation.
Qu’est-ce qu’ASDF ?
asdf est un gestionnaire de versions populaire qui utilise une technique appelée « shimming » pour basculer entre différentes versions d'outils comme Python, Node.js et Ruby. Il crée des chemins temporaires vers des versions spécifiques, modifiant l'environnement pour garantir que la version correcte d'un outil est utilisée dans différents projets. Cependant, cette méthode peut introduire une surcharge de performances en raison du fonctionnement de ces cales.
Qu'est-ce que la mise ?
mise, abréviation de l'expression française « mise en place », qui désigne la façon dont vous préparez une table, cherche à améliorer l'asdf en supprimant le recours aux cales.
Écrit en Rust, mise modifie directement la variable d'environnement PATH, conduisant à des temps d'exécution plus rapides. Il est conçu pour fonctionner de manière transparente avec les plugins asdf mais offre des fonctionnalités telles que la correspondance floue des commandes et la possibilité d'installer plusieurs versions du même outil simultanément.
Premiers pas avec asdf
Pour installer asdf, suivez le guide de démarrage pour installer les prérequis en fonction de votre système. Une fois l'environnement prêt, vous pouvez cloner le dépôt officiel dans votre répertoire personnel :
$ git clone https://github.com/asdf-vm/asdf.git ~/.asdf --branch v0.14.1
La commande ci-dessus clonera dans le répertoire .asdf tous les fichiers de script et de configuration nécessaires pour finaliser l'installation.
L'étape suivante, à partir du guide d'installation ci-dessus, consiste à exécuter le script d'installation. Encore une fois, cette étape dépendra des détails de votre environnement et de votre système d'exploitation, suivez donc simplement le guide pour ajouter l'invocation de script appropriée dans votre script d'initialisation shell (par exemple, .bashrc, .bash_profile, etc.). À la fin de ce processus et, généralement après avoir redémarré votre shell, vous devriez pouvoir exécuter asdf en tant que commande :
À ce stade, asdf est en cours d'exécution mais pour en faire quelque chose d'utile, vous devez installer les plugins pour gérer l'outil (dans le langage asdf) qui sont pertinents pour le projet que vous avez l'intention de développer (par exemple, Node.js, python, etc).
Pour cela, nous installons le plugin pour Node.js. En asdf, un plugin est le morceau de code qui vous permettra de jongler avec différentes versions d'un framework ou d'une bibliothèque. Dans ce cas, nous installerons le plugin Node.js, puis installerons quelques versions de Node.js juste pour comprendre comment asdf les gérera.
Nous allons installer le plugin Node.js avec le code suivant :
$ git clone https://github.com/asdf-vm/asdf.git ~/.asdf --branch v0.14.1
Veuillez noter que vous devez explicitement adresser le dépôt git contenant le code source du plugin. Une fois le plugin en place, vous pouvez l'utiliser pour installer des versions spécifiques de Node.js avec la commande suivante :
$ asdf plugin add nodejs https://github.com/asdf-vm/asdf-nodejs.git
Dans cet exemple, vous installez la dernière version qui, au moment de la rédaction, est la 23.1.0. Avec la commande suivante, vous installez une version spécifique de Node.js :
$ asdf install nodejs latest
Pour vérifier que les deux sont disponibles dans votre système, utilisez ce qui suit :
$ asdf install nodejs 20.0.0
Pour sélectionner la version de Node.js à utiliser, utilisez la commande suivante :
$ asdf shim-versions node nodejs 20.0.0 nodejs 23.1.0
asdf gère les différentes versions d'un outil en remplissant un fichier nommé [.tool-versions](https://asdf-vm.com/manage/configuration.html#tool-versions) avec le format suivant :
$ asdf global nodejs 20.0.0 $ node --version v20.0.0 $ asdf global nodejs 23.1.0 $ node --version v23.1.0
Le fichier .tool-versions est manipulé automatiquement par asdf avec la commande pour spécifier quelle version d'un donné vous comptez utiliser, comme nous l'avons fait ci-dessus avec Node.js version 20.0.0. En fonction du paramètre global, shell et local, nous ajouterons les versions d'un outil à un fichier .tool-versions spécifique avec différents effets sur votre environnement. Ci-dessous, il y a l'explication de l'impact des paramètres dans le cas où nous installons Node.js version 20.0.0 :
- asdf global nodejs 20.0.0 : Dans ce cas, nous avons l'intention d'utiliser cette version spécifique dans tout le système partout où elle n'est pas spécifiée différemment
- asdf shell nodejs 20.0.0 : C'est le cas où nous souhaitons utiliser cette version de Node.js uniquement pour la session shell en cours
- asdf local nodejs 20.0.0 : Cette version de la commande créera un .tool-versions qui spécifie la version de Node.js uniquement valable pour le répertoire où la commande est exécutée. Cela signifie que nous pouvons avoir différentes versions d'un même outil dans différents sous-répertoires de votre projet. Il s’agit d’une fonctionnalité plutôt intéressante, pertinente pour les projets complexes. Dans l'image suivante, vous pouvez voir comment cela affecte votre environnement :
ruby 2.5.3 nodejs 10.15.0
Avec la première commande, nous disons à asdf d'utiliser la version 20.0.0 dans le répertoire personnel et node --version confirme la version. Ensuite, nous créons un répertoire nommé test. Lors du test, nous exécutons asdf, en spécifiant une version différente pour Node (version 23.1.0) et, encore une fois, le node --version confirme que nous utilisons la version 23.1.0. Enfin, en revenant au répertoire personnel, vous pouvez voir comment la version locale de Node.js est toujours 20.0.0.
Qu'est-ce qu'une cale ?
Maintenant que asdf travaille sur notre système, apprenons ce qu'est une cale et pourquoi elle est importante lorsque l'on travaille avec asdf.
En informatique, un shim est un moyen de rediriger des commandes (par exemple, l'invocation de méthodes de bibliothèque) de manière transparente entre différentes versions. La clé ici est le mot « transparentement ». L'idée même d'asdf est de permettre à l'utilisateur de changer ce qu'on appelle réellement lorsque vous écrivez, disons, un nœud ou un python ou tout autre package, de manière transparente. L'utilisateur continue de taper node ou python mais asdf a défini un chemin différent – une cale – vers la version correcte en fonction de ce qui est écrit dans le fichier .tool-versions.
Un plugin n'est qu'un ensemble de scripts shell intelligents qui permettent à asdf de sélectionner la version appropriée d'une commande spécifique (par exemple, vérifiez le plugin Node.js). Les commandes du répertoire bin implémentent simplement ce qu'asdf doit exécuter lorsque vous utilisez le plugin Node.js pour installer une nouvelle version, sélectionner une version spécifique à utiliser, etc.
Commencer avec mise
Le processus d'installation de mise est plus simple que celui d'asdf car vous n'aurez pas besoin de cloner un dépôt git :
$ git clone https://github.com/asdf-vm/asdf.git ~/.asdf --branch v0.14.1
Le guide d'activation est assez simple ; une fois que vous aurez exécuté la commande ci-dessus et redémarré votre shell, vous pourrez exécuter ce qui suit :
$ asdf plugin add nodejs https://github.com/asdf-vm/asdf-nodejs.git
Cela affichera l'état de votre installation. Une fois mise installée, vous devrez peut-être l'activer avec la commande [mise activate](https://mise.jdx.dev/cli/activate.html).
À ce stade, la commande mise est disponible pour être utilisée pour la tâche la plus courante : installer une version spécifique d'un framework pour le rendre disponible globalement pour le système :
$ asdf install nodejs latest
Nous partons d'une situation où l'exécutable du nœud n'est pas dans le système. À l'aide de la commande mise, nous installons globalement une version de nœud spécifique pour la rendre disponible. Pour vérifier les versions des outils actuellement installés, vous pouvez utiliser la commande suivante :
$ asdf install nodejs 20.0.0
Dans la commande ci-dessus, vous pouvez voir l'outil de nœud installé dans la case ci-dessus et une version Python.
Comparaison entre asdf et mise
Le framework mise utilise le même mécanisme asdf pour gérer les différentes configurations d'outils dans tout le système et dans des répertoires spécifiques. Le rôle du fichier .tool-versions dans asdf est joué par le fichier mise.toml, qui collectera les configurations.
En théorie, il n'y a pas de concept similaire aux plugins asdf, et c'est une bonne chose car, dans asdf, l'installation d'une version spécifique d'un outil – disons node@20.0.0 – est un processus en deux étapes ( en installant d'abord le plugin Node.js puis la version particulière de Node). Dans mise, vous vous adressez simplement à la version unique de l'outil dont vous avez besoin, et mise se chargera de tout le gros du travail de configuration pour vous en coulisses. Dans les deux encadrés suivants, vous pouvez voir comment les commandes asdf se traduisent par mise :
$ asdf shim-versions node nodejs 20.0.0 nodejs 23.1.0
En pratique, tout cela peut être fait en une seule étape qui installe le plugin et le runtime, et définit la version :
$ git clone https://github.com/asdf-vm/asdf.git ~/.asdf --branch v0.14.1
La verbosité générale d'asdf est résolue avec élégance par le sucre syntaxique de mise. Néanmoins, mise est différente dans la façon dont elle gère les différentes versions, ce qui a un impact plus large sur l'ensemble de l'expérience. Dans l'image suivante, nous décrivons ce qui se passe lorsque vous exécutez une commande de nœud dans un environnement dans lequel asdf fonctionne :
Ce processus a bien sûr un impact sur le temps nécessaire à l'exécution d'une commande. D'un autre côté, mise résout le même problème de sélection du bon outil en fonction de la configuration en exploitant un autre mécanisme : la variable PATH, qui est le mécanisme natif du système d'exploitation pour exécuter une commande.
Les performances sont identiques à l'exécution de la commande (par exemple, node) sans utiliser mise. Par curiosité, mise fonctionne différemment par rapport à asdf : mise traque chaque changement de répertoire de sorte que lorsque l'utilisateur change de répertoire, mise invoque un hook interne pour mettre à jour la variable PATH. Ce hook est très efficace car il est écrit en Rust et il mettra en place la variable PATH à la volée pour configurer votre environnement.
Conclusion
asdf et mise gèrent efficacement plusieurs versions d'outils, chacune avec des mécanismes uniques. mise excelle en efficacité grâce à son mécanisme de crochet PATH, tandis que asdf offre une compatibilité d'outils plus large mais avec le compromis en termes de performances de son mécanisme de cale. La compatibilité de mise avec les plugins asdf comble le fossé entre les outils.
Qu'il s'agisse de donner la priorité à la vitesse ou à la sélection, les deux outils permettent aux développeurs de gérer facilement leurs environnements, offrant un écosystème florissant pour divers packages et outils.
Installez-vous avec le suivi des erreurs moderne de LogRocket en quelques minutes :
- Visitez https://logrocket.com/signup/ pour obtenir un identifiant d'application.
- Installez LogRocket via NPM ou une balise de script. LogRocket.init() doit être appelé côté client et non côté serveur.
NPM :
$ asdf plugin add nodejs https://github.com/asdf-vm/asdf-nodejs.git
Balise de script :
$ asdf install nodejs latest
3.(Facultatif) Installez des plugins pour des intégrations plus approfondies avec votre pile :
- Middleware Redux
- middleware ngrx
- Plugin Vuex
Commencez maintenant.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

JavaScript s'exécute dans les navigateurs et les environnements Node.js et s'appuie sur le moteur JavaScript pour analyser et exécuter du code. 1) Générer une arborescence de syntaxe abstraite (AST) au stade d'analyse; 2) Convertir AST en bytecode ou code machine à l'étape de compilation; 3) Exécutez le code compilé à l'étape d'exécution.

Les tendances futures de Python et JavaScript incluent: 1. Python consolidera sa position dans les domaines de l'informatique scientifique et de l'IA, 2. JavaScript favorisera le développement de la technologie Web, 3. Le développement de plate-forme multiplié deviendra un sujet brûlant, et 4. L'optimisation des performances sera le focus. Les deux continueront d'étendre les scénarios d'application dans leurs champs respectifs et de faire plus de percées dans les performances.

Les choix de Python et JavaScript dans les environnements de développement sont importants. 1) L'environnement de développement de Python comprend Pycharm, Jupyternotebook et Anaconda, qui conviennent à la science des données et au prototypage rapide. 2) L'environnement de développement de JavaScript comprend Node.js, VScode et WebPack, qui conviennent au développement frontal et back-end. Le choix des bons outils en fonction des besoins du projet peut améliorer l'efficacité du développement et le taux de réussite du projet.

Oui, le noyau du moteur de JavaScript est écrit en C. 1) Le langage C fournit des performances efficaces et un contrôle sous-jacent, qui convient au développement du moteur JavaScript. 2) Prendre le moteur V8 comme exemple, son noyau est écrit en C, combinant l'efficacité et les caractéristiques orientées objet de C. 3) Le principe de travail du moteur JavaScript comprend l'analyse, la compilation et l'exécution, et le langage C joue un rôle clé dans ces processus.

JavaScript est au cœur des sites Web modernes car il améliore l'interactivité et la dynamicité des pages Web. 1) Il permet de modifier le contenu sans rafraîchir la page, 2) manipuler les pages Web via Domapi, 3) prendre en charge les effets interactifs complexes tels que l'animation et le glisser-déposer, 4) Optimiser les performances et les meilleures pratiques pour améliorer l'expérience utilisateur.

C et JavaScript réalisent l'interopérabilité via WebAssembly. 1) Le code C est compilé dans le module WebAssembly et introduit dans un environnement JavaScript pour améliorer la puissance de calcul. 2) Dans le développement de jeux, C gère les moteurs de physique et le rendu graphique, et JavaScript est responsable de la logique du jeu et de l'interface utilisateur.

JavaScript est largement utilisé dans les sites Web, les applications mobiles, les applications de bureau et la programmation côté serveur. 1) Dans le développement de sites Web, JavaScript exploite DOM avec HTML et CSS pour réaliser des effets dynamiques et prend en charge des cadres tels que JQuery et React. 2) Grâce à la réactnative et ionique, JavaScript est utilisé pour développer des applications mobiles multiplateformes. 3) Le cadre électronique permet à JavaScript de créer des applications de bureau. 4) Node.js permet à JavaScript d'exécuter le côté du serveur et prend en charge les demandes simultanées élevées.

Python est plus adapté à la science et à l'automatisation des données, tandis que JavaScript est plus adapté au développement frontal et complet. 1. Python fonctionne bien dans la science des données et l'apprentissage automatique, en utilisant des bibliothèques telles que Numpy et Pandas pour le traitement et la modélisation des données. 2. Python est concis et efficace dans l'automatisation et les scripts. 3. JavaScript est indispensable dans le développement frontal et est utilisé pour créer des pages Web dynamiques et des applications à une seule page. 4. JavaScript joue un rôle dans le développement back-end via Node.js et prend en charge le développement complet de la pile.


Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Version crackée d'EditPlus en chinois
Petite taille, coloration syntaxique, ne prend pas en charge la fonction d'invite de code

SublimeText3 version anglaise
Recommandé : version Win, prend en charge les invites de code !

Dreamweaver Mac
Outils de développement Web visuel

Version Mac de WebStorm
Outils de développement JavaScript utiles

Listes Sec
SecLists est le compagnon ultime du testeur de sécurité. Il s'agit d'une collection de différents types de listes fréquemment utilisées lors des évaluations de sécurité, le tout en un seul endroit. SecLists contribue à rendre les tests de sécurité plus efficaces et productifs en fournissant facilement toutes les listes dont un testeur de sécurité pourrait avoir besoin. Les types de listes incluent les noms d'utilisateur, les mots de passe, les URL, les charges utiles floues, les modèles de données sensibles, les shells Web, etc. Le testeur peut simplement extraire ce référentiel sur une nouvelle machine de test et il aura accès à tous les types de listes dont il a besoin.
