web-dev-qa-db-fra.com

Exécuter des scripts bash avec npm

Je souhaite essayer d'utiliser npm pour exécuter mes différentes tâches de construction pour une application Web. Je sais que je peux le faire en ajoutant un champ scripts à mon package.json ainsi:

"scripts": {
   "build": "some build command"
},

Cela devient difficile lorsque vous avez des commandes plus complexes avec un tas d'options. Est-il possible de déplacer ces commandes vers un script bash ou quelque chose du genre? Quelque chose comme:

"scripts": {
   "build": "build.sh"
},

npm run build exécuterait les commandes dans le build.sh fichier?

En lisant this post, cela semble être le cas, mais je ne sais pas exactement où je suis supposé déposer mon build.sh fichier ou s'il me manque quelque chose.

43
Mark McKelvy

C'est totalement possible ...

"scripts": {
   "build": "./build.sh"
},

de plus, assurez-vous de mettre un hash bang en haut de votre fichier bash #!/usr/bin/env bash

assurez-vous également que vous disposez des autorisations nécessaires pour exécuter le fichier.

chmod +x ./build.sh

Enfin, la commande pour exécuter build in npm serait

npm run build
76
eblahm

Encore plus simple:

Je le fais régulièrement pour les one-offs et les PoC n'impliquant pas de VCS

{
    "scripts": {
        "ship": "rsync -avz deployable/* <some-server>:/var/www/some-site/sub-dir/"
    },
}
...
2
CNSKnight