Exécutables globaux NPM/Node.js
Avez-vous déjà rencontré une bibliothèque qui, lors de l'installation globale, offre une gamme de commandes globales ?
C'est la eslintbibliothèque populaire. Si vous l'installez globalement, vous obtiendrez une commande globale appelée eslint.
Voyons comment faire quelque chose comme ça.
Donc, j'écris ce morceau de code dans un fichier appelé hello.js.
#!/usr/bin/env node
console.log('Hey dear!');
Maintenant, si nous essayons d'exécuter notre hello.jsfichier, nous obtiendrons ce type d'erreur.
$ ./hello.js
-bash: ./hello.js: Permission denied
Pour cela, nous avons besoin d'utiliser chmodpour le faire fonctionner.
chmod +x hello.js
Maintenant, nous pouvons le faire fonctionner comme ça !
$ ./hello.js
Hey dear!
Au fait, nous pouvons le simplifier davantage en le renommant en quelque chose comme hello.
Le type de fichier n'est pas important dans ce cas, car nous avons écrit quelque chose de magique dans la première ligne du fichier.
Je n'essaierai pas ça, car on voulait quelque chose qui se joue avec npm i -g, n'est-ce pas ?
Alors continuons à cuisiner…
Nous pouvons vérifier eslint'sla base de code et voir comment ils ont fait cela. Nous avons juste besoin de vérifier leur package.jsondossier.
Comme vous pouvez le voir ici, ils ont utilisé cet binobjet pour configurer leur commande exécutable globale.
Maintenant je vais faire pareil.
Je vais créer un projet Node.js. Et configurez l' hello.jsexécutable comme dans eslint'sl'exemple.
mkdir sayhi-nairi && cd sayhi-nairi
npm init --yes
{
// ...
"bin" : {
"hello" : "./hello.js"
}
}
npm publish
En utilisant whichla commande, vous pouvez voir où npmest stocké cet exécutable.
Pour plus d'informations, reportez-vous à la documentation NPM et expérimentez différentes fonctionnalités pour découvrir ce que vous pouvez réaliser d'autre.
Merci d'avoir pris le temps de lire cet article. N'hésitez pas à me contacter pour toute question ou commentaire que vous pourriez avoir. @nairihar
![Qu'est-ce qu'une liste liée, de toute façon? [Partie 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































