web-dev-qa-db-fra.com

exécuter le fichier batch dans le script npm

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.

11
Anna Morning

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.
  • Nous avons aussi 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"
    
17
RobC