Les scripts npm regroupent un ensemble de commandes de terminal que vous pouvez utiliser pour automatiser des tâches dans un projet JavaScript. Ils fournissent également un moyen cohérent d'exécuter des commandes dans différents environnements.
Vous pouvez configurer des scripts npm dans un fichier package.json, les exécuter sur la ligne de commande et utiliser un large éventail d'options pour configurer leur comportement.
Configuration des scripts npm dans le fichier package.json
Vous définissez généralement les scripts npm dans un fichier package.json, situé à la racine de votre projet JavaScript. Ce n'est pas indispensable car vous pouvez exécuter des scripts à partir d'autres fichiers, mais package.json facilite l'accès et la gestion de vos scripts.
Notez que vous devez avoir npm et Node installés dans votre environnement de développement pour suivre. Voici quelques articles utiles :
- Comment installer Node.js et npm sous Windows.
- Comment installer Node.js et npm sur Ubuntu.
Pour configurer un script npm dans package.json, suivez les étapes ci-dessous :
- Accédez à la racine de votre projet.
- Exécutez npm init sur le terminal. La commande vous posera quelques questions sur votre projet. Répondez-y pour créer un fichier package.json approprié.
initialisation npm
- Dans le fichier package.json, recherchez le champ des scripts. Ici, vous pouvez ajouter le nom d'un script et la commande qu'il doit exécuter en tant que paires clé/valeur. Par exemple, le script ci-dessous, nommé hello-world, affiche "Hello world" dans le terminal lorsqu'il est exécuté.
{
"scénarios": {
"Bonjour le monde": "écho \\"Bonjour le monde\\""
}
}
Voici quelques scripts courants pour les projets JavaScript :
- commencer: Ce script démarre le serveur de développement. Par exemple, dans un projet Node, il peut lancer le serveur avec nodemon.
- construire: Génère le code de production de votre application et peut utiliser un outil tel que Webpack pour réduire et regrouper le code.
- test: Ce script exécute les tests définis dans votre projet. Il peut exécuter un framework de test comme Jest.
- peluche: Un script lint exécute un outil de lint tel que ESLint pour vérifier le code pour les erreurs potentielles.
- montre: Ce script surveille le code source pour les modifications, puis exécute une commande. C'est utile pour relancer des tests ou reconstruire l'application lors d'un changement de code.
- déployer: exécute une commande qui déploie l'application dans l'environnement spécifié, comme la production ou la mise en scène.
Pré et post-scripts
npm prend en charge les scripts pré et post. Les pré-scripts s'exécutent avant un script spécifique tandis que les post-scripts s'exécutent après. Vous pouvez créer des scripts pré et post pour n'importe quel script, préfixez simplement "pré" ou "post" au nom de votre script.
Par exemple, vous trouverez ci-dessous des scripts de pré-test et de post-test qui s'exécuteront respectivement avant et après le script de test.
{
"scénarios": {
"pré-test": "npm run lint",
"test": "plaisanter",
"post-test": "npm run build"
}
}
Exécution de scripts npm à partir de package.json
Une fois que vous avez ajouté un script npm à package.json, vous pouvez l'exécuter à l'aide de la commande npmrun.
Voici la syntaxe :
course npm
Par exemple, pour exécuter le script de démarrage défini précédemment, utilisez :
démarrage de l'exécution npm
Vous pouvez exécuter la commande npmrun seule pour obtenir la liste de tous les scripts disponibles dans un projet. Voici quelques exemples de sortie :
Scripts disponibles dans [email protected] via `npm run-script` :
Bonjour le monde
echo "Bonjour le monde"
Il répertorie le nom du script et la commande qu'il exécute.
Utilisation de commandes abrégées pour exécuter des scripts intégrés
npm prend en charge plusieurs scripts intégrés que vous pouvez exécuter à l'aide de commandes abrégées. Par exemple, pour exécuter un script npm nommé start, vous pouvez utiliser npm start au lieu de npm run start.
C'est plus pratique et plus rapide que de taper la commande complète. D'autres scripts intégrés que vous pouvez exécuter comme celui-ci incluent "test", "stop" et "restart".
Exécution de plusieurs scripts npm
Vous pouvez exécuter plusieurs scripts npm de deux manières :
- Séquentiellement
- En parallèle
Si vous utilisez Linux ou tout autre système de type Unix, vous pouvez utiliser le standard méthodes d'exécution de plusieurs commandes à la fois.
Pour exécuter plusieurs scripts npm séquentiellement, utilisez &&, par exemple :
démarrage de l'exécution npm && test npm
Pour exécuter plusieurs scripts npm en parallèle, utilisez &, par exemple :
serveur d'exécution npm et client d'exécution npm
Dans les environnements non UNIX, vous pouvez utiliser la commande npm-run-all ou le package npm simultané.
Utilisation de npm-run-all :
npm-run-all --client serveur parallèle
Utilisation simultanée dans package.json.
"scénarios": {
"dev": "simultanément \\"serveur d'exécution npm\\" \\"npm exécuter le client\\"",
}
Notez que vous devez installer les packages npm-run-all et Concurrently avant de les utiliser.
Dépannage des erreurs courantes de script Npm
Vous trouverez ci-dessous quelques erreurs courantes que vous pouvez rencontrer lors de l'exécution de scripts npm :
- npm erreur! script manquant — Cette erreur se produit lorsque vous n'avez pas défini le script que vous essayez d'exécuter dans le fichier package.json. Assurez-vous que vous épelez correctement le nom du script et qu'il est défini dans le champ scripts du fichier package.json.
- Permission refusée — Cette erreur se produit lorsque vous n'êtes pas autorisé à exécuter un script, alors assurez-vous d'avoir les bonnes autorisations.
- Dépendances manquantes — Cette erreur se produit lorsque le script utilise un package qui n'est pas installé. Utilisez un outil comme vérifier pour vérifier les dépendances manquantes dans package.json, puis installez-les à l'aide de npm install.
- Commande inconnue — Cette erreur se produit généralement lorsque vous exécutez un script personnalisé en tant que commande npm intégrée. Assurez-vous d'utiliser course npm ou script d'exécution npm lors de l'exécution de scripts personnalisés.
Utilisation de variables d'environnement dans les scripts npm
Variables d'environnement vous permettent de transmettre des informations sans les coder en dur. Pour utiliser des variables d'environnement dans un script npm, vous pouvez utiliser le paquet cross-env npm. Cet outil vous aide à définir une variable d'environnement dans n'importe quel environnement.
Commencez par exécuter cette commande sur le terminal pour l'installer en tant que dépendance de développement :
npm je sauve -D cross-env
Ensuite, utilisez-le dans votre script comme ceci :
{
"scénarios": {
"construire": "cross-env NODE_ENV=production webpack"
}
}
Ici, cross-env définit la variable NODE_ENV sur "production".
Passer des arguments de ligne de commande à des scripts
Vous pouvez transmettre des arguments de ligne de commande à un script npm en utilisant deux tirets "--" après le nom du script. Par exemple, la commande suivante exécute le script de test avec l'argument watch :
test d'exécution npm -- --regarder
Vous pouvez également envoyer un argument de ligne de commande à un script npm comme ceci :
npm exécuter mon-port --PORT=3000
Accédez-y ensuite dans le script comme suit.
"scénarios": {
"mon-port": "écho \\"Port: $npm_config_PORT\\""
}
Sur un système Windows, utilisez ceci :
"scénarios": {
"mon-port": "écho \\"Port: %npm_config_PORT%\\""
}
Le script doit afficher "Port: 3000" lorsque vous l'exécutez.
Pourquoi utiliser les scripts npm ?
Vous pouvez ajouter des scripts à package.json, les exécuter sur la ligne de commande, utiliser des hooks pré et post et leur transmettre des arguments de ligne et des variables d'environnement.
Les scripts npm sont un moyen puissant d'automatiser les tâches dans les projets JavaScript. Ils peuvent améliorer votre flux de travail et vous faire gagner du temps en vous fournissant des commandes cohérentes pour exécuter plusieurs tâches.