Bash-scripts uitvoeren met npm

Ik wil proberen npm te gebruiken om mijn verschillende bouwtaken voor een webtoepassing uit te voeren. Ik weet dat ik dit kan doen door een veld scriptstoe te voegen aan mijn package.jsonzoals:

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

Dit wordt lastig als je complexere commando’s hebt met een heleboel opties. Is het mogelijk om deze commando’s te verplaatsen naar een bash-script of iets dergelijks? Iets als:

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

waar npm run buildde opdrachten in het bestand build.shzou uitvoeren?

Als ik ditbericht lees, lijkt het alsof het zo is, maar ik weet niet precies waar ik ben zou mijn build.sh-bestand laten vallen of als ik iets mis.


Antwoord 1, autoriteit 100%

Het is heel goed mogelijk…

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

Zorg er ook voor dat je een hash-bang bovenaan je bash-bestand #!/usr/bin/env bash

plaatst

Zorg er ook voor dat je rechten hebt om het bestand uit te voeren

chmod +x ./build.sh

Ten slotte zou het commando om build in npm uit te voeren zijn

npm run build

Antwoord 2, autoriteit 8%

Als je je niet bezig wilt houden met het geven van permissies en de omgeving waarin je het script uitvoert heeft bijvoorbeeld sh, dan kun je dat gewoon doen

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

Antwoord 3, autoriteit 4%

Nog eenvoudiger:

Ik doe dit routinematig voor eenmalige en PoC’s zonder VCS

pakket.json

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

Other episodes