Est-il possible et comment exécuter un script batch dans la commande npm?
J'ai un projet angular, dans package.json
fichier, sous la section scripts
, je souhaite définir une commande npm pour exécuter le script batch. Je sais que je peux exécuter le script Shell avec le mot clé bash
par exemple.
"start": "cd mydir && bash ./myscript"
Ensuite, je peux exécuter npm start
dans mon répertoire de projet, qui va changer de répertoire et exécuter myscript.sh
script. Quel est le mot clé équivalent pour exécuter un script batch dans npm?
Débutant ici. Désolé s'il s'agit d'une question en double; peut-être que je ne recherche pas les termes corrects, mais je ne vois pas pour trouver des réponses à cette question.
Pour aider à fournir un contexte à cette réponse, disons que nous avons deux fichiers batch nommés say-hello.bat
et say-hello-cmd
. Les deux fichiers batch ont le même contenu artificiel simple comme suit:
echo Hello World
Lors de l'appel de l'un des deux fichiers batch via npm-scripts
, nous nous attendons à ce que la console se connecte:
Hello World
Structure du répertoire du projet:
Supposons maintenant que notre répertoire de projets soit structuré comme suit:
.
├── a
│ └── b
│ ├── say-hello.bat
│ └── say-hello.cmd
├── package.json
├── say-hello.bat
├── say-hello.cmd
└── ...
Comme vous pouvez le constater, nous avons:
say-hello.bat
et say-hello.cmd
stocké à la racine du répertoire du projet. Ils sont au même niveau que package.json
.say-hello.bat
et say-hello.cmd
stocké dans un sous-répertoire du répertoire du projet Le chemin d'accès à ceux-ci est: a/b/
scripts npm
Pour pouvoir invoquer ces fichiers batch via npm
, la section scripts
de package.json
devrait être défini comme suit:
{
...
"scripts": {
"bat": "say-hello.bat",
"cmd": "say-hello.cmd",
"bat-in-sub-dir": "cd a/b/ && say-hello.bat",
"cmd-in-sub-dir": "cd a/b/ && say-hello.cmd"
},
...
}
Si vous maintenant cd
dans votre répertoire de projet et exécutez l'une des commandes suivantes:
npm run bat
npm run cmd
npm run bat-in-sub-dir
npm run cmd-in-sub-dir
Le ou les fichiers de commandes seront exécutés et vous verrez avec succès les mots Hello World
connecté à la console.
Notes
La différence notable entre ces exemples ci-dessus est:
Lorsque le fichier de commandes est stocké à la racine de votre répertoire de projets, vous indiquez simplement le nom du fichier de commandes dans votre script. Par exemple.
"bat": "say-hello.bat"
Lorsque le fichier de commandes est stocké dans un sous-répertoire du répertoire de votre projet (par exemple a/b/
) vous devez d'abord cd
dans ce dossier, puis fournir le nom du fichier de commandes à exécuter. Par exemple.
"bat-in-sub-dir": "cd a/b/ && say-hello.bat"