npm-scripts bundelen een set terminalopdrachten die u kunt gebruiken om taken in een JavaScript-project te automatiseren. Ze bieden ook een consistente manier om opdrachten in verschillende omgevingen uit te voeren.
U kunt npm-scripts instellen in een package.json-bestand, ze uitvoeren op de opdrachtregel en een breed scala aan opties gebruiken om hun gedrag te configureren.
NPM-scripts instellen in het bestand package.json
U definieert doorgaans npm-scripts in een package.json-bestand, dat zich in de hoofdmap van uw JavaScript-project bevindt. Dit is geen must, aangezien u scripts uit andere bestanden kunt uitvoeren, maar package.json maakt het gemakkelijker om uw scripts te openen en te beheren.
Merk op dat u npm en Node in uw ontwikkelomgeving moet hebben geïnstalleerd om mee te kunnen doen. Hier zijn enkele nuttige artikelen:
- Hoe installeer Node.js en npm op Windows.
- Hoe installeer Node.js en npm op Ubuntu.
Volg de onderstaande stappen om een npm-script in package.json in te stellen:
- Navigeer naar de hoofdmap van uw project.
- Voer npm init uit op de terminal. De opdracht stelt u enkele vragen over uw project. Beantwoord ze om een geschikt package.json-bestand te maken.
npm begin
- Zoek in het bestand package.json het veld scripts. Hier kunt u de naam van een script toevoegen en de opdracht die het moet uitvoeren als sleutel/waarde-paren. Het onderstaande script, genaamd hello-world, drukt bijvoorbeeld "Hallo wereld" af in de terminal wanneer het wordt uitgevoerd.
{
"scripts": {
"Hallo Wereld": "echo\\"Hallo Wereld\\""
}
}
Hier volgen enkele veelgebruikte scripts voor JavaScript-projecten:
- begin: Dit script start de ontwikkelserver. In een Node-project kan dat bijvoorbeeld voer de server uit met behulp van nodemon.
- bouwen: Genereert de productiecode voor uw toepassing en gebruikt mogelijk een tool zoals webpack om de code te verkleinen en te bundelen.
- test: Dit script voert de tests uit die in uw project zijn gedefinieerd. Het kan een testraamwerk uitvoeren zoals Jest.
- lint: Een linting-script voert een linting-tool zoals ESLint uit om de code te controleren op mogelijke fouten.
- horloge: Dit script controleert de broncode op wijzigingen en voert vervolgens een opdracht uit. Het is handig voor het opnieuw uitvoeren van tests of het opnieuw opbouwen van de applicatie bij codewijziging.
- aanwenden: voert een opdracht uit die de toepassing implementeert in de opgegeven omgeving, zoals productie of staging.
Pre- en postscripts
npm ondersteunt pre- en postscripts. Pre-scripts worden uitgevoerd vóór een specifiek script, terwijl post-scripts daarna worden uitgevoerd. U kunt voor elk script pre- en post-scripts maken, voeg gewoon "pre" of "post" toe aan uw scriptnaam.
Hieronder staan bijvoorbeeld pretest- en posttest-scripts die respectievelijk vóór en na het testscript worden uitgevoerd.
{
"scripts": {
"pretest": "npm run lint",
"test": "grap",
"natest": "npm run bouwen"
}
}
NPM-scripts uitvoeren vanuit package.json
Nadat u een npm-script aan package.json hebt toegevoegd, kunt u het uitvoeren met de opdracht npmrun.
Hier is de syntaxis:
npm lopen
Om bijvoorbeeld het eerder gedefinieerde startscript uit te voeren, gebruikt u:
npm-run start
U kunt de opdracht npmrun alleen uitvoeren om de lijst met alle beschikbare scripts in een project te krijgen. Hier is wat voorbeelduitvoer:
Scripts beschikbaar in [email protected] via `npm run-script`:
Hallo Wereld
echo "Hallo wereld"
Het vermeldt de naam van het script en de opdracht die wordt uitgevoerd.
Korte opdrachten gebruiken om ingebouwde scripts uit te voeren
npm ondersteunt verschillende ingebouwde scripts die u kunt uitvoeren met behulp van verkorte opdrachten. Als u bijvoorbeeld een npm-script met de naam start wilt uitvoeren, kunt u npm start gebruiken in plaats van npm run start.
Dit is handiger en sneller dan het typen van de volledige opdracht. Andere ingebouwde scripts die u op deze manier kunt uitvoeren, zijn onder meer "test", "stop" en "herstart".
Meerdere npm-scripts uitvoeren
U kunt op twee manieren meerdere npm-scripts uitvoeren:
- Opeenvolgend
- Parallel
Als je Linux of een ander Unix-achtig systeem gebruikt, kun je de standaard gebruiken methoden om meerdere opdrachten tegelijk uit te voeren.
Gebruik && om meerdere npm-scripts opeenvolgend uit te voeren, bijvoorbeeld:
npm run start && npm-test
Om meerdere npm-scripts parallel uit te voeren, gebruikt u &, bijvoorbeeld:
npm run-server & npm run-client
In niet-UNIX-omgevingen kunt u de opdracht npm-run-all of het gelijktijdige npm-pakket gebruiken.
npm-run-all gebruiken:
npm-run-all --parallel serverclient
Gelijktijdig gebruiken in package.json.
"scripts": {
"ontwikkelaar": "gelijktijdig \\"npm run-server\\" \\"npm run-client\\"",
}
Merk op dat u de pakketten npm-run-all en Concurrently moet installeren voordat u ze kunt gebruiken.
Problemen met veelvoorkomende Npm-scriptfouten oplossen
Hieronder vindt u enkele veelvoorkomende fouten die u kunt tegenkomen bij het uitvoeren van npm-scripts:
- npm fout! ontbrekend schrift — Deze fout treedt op wanneer u het script dat u probeert uit te voeren niet hebt gedefinieerd in het bestand package.json. Zorg ervoor dat u de scriptnaam correct spelt en dat deze is gedefinieerd in het veld scripts van het bestand package.json.
- Geen toestemming — Deze fout treedt op wanneer u geen toestemming hebt om een script uit te voeren, dus zorg ervoor dat u over de juiste machtigingen beschikt.
- Ontbrekende afhankelijkheden — Deze fout treedt op wanneer het script een pakket gebruikt dat niet is geïnstalleerd. Gebruik een tool als depcheck om te controleren op ontbrekende afhankelijkheden in package.json, installeer ze vervolgens met behulp van npm install.
- Onbekend commando — Deze fout treedt meestal op wanneer u een aangepast script uitvoert als een ingebouwde npm-opdracht. Zorg ervoor dat u gebruikt npm lopen of npm run-script bij het uitvoeren van aangepaste scripts.
Omgevingsvariabelen gebruiken in npm-scripts
Omgevingsvariabelen stellen u in staat informatie door te geven zonder deze hard te coderen. Om omgevingsvariabelen in een npm-script te gebruiken, kunt u de cross-env npm-pakket. Deze tool helpt u bij het instellen van een omgevingsvariabele in elke omgeving.
Begin met het uitvoeren van deze opdracht op de terminal om deze te installeren als een dev-afhankelijkheid:
npm i save -D cross-env
Gebruik het dan als volgt in je script:
{
"scripts": {
"bouwen": "cross-env NODE_ENV=productie webpack"
}
}
Hier stelt cross-env de variabele NODE_ENV in op "productie".
Opdrachtregelargumenten doorgeven aan scripts
U kunt opdrachtregelargumenten doorgeven aan een npm-script door twee streepjes "--" achter de scriptnaam te gebruiken. Met de volgende opdracht wordt bijvoorbeeld het testscript uitgevoerd met het argument watch:
npm run test -- --kijken
U kunt ook als volgt een opdrachtregelargument naar een npm-script sturen:
npm voer mijn-poort --PORT=3000 uit
Open het vervolgens als volgt in het script.
"scripts": {
"mijn-poort": "echo\\"Poort: $npm_config_PORT\\""
}
Gebruik dit op een Windows-systeem:
"scripts": {
"mijn-poort": "echo\\"Poort: %npm_config_PORT%\\""
}
Het script zou "Port: 3000" moeten afdrukken wanneer u het uitvoert.
Waarom npm-scripts gebruiken?
U kunt scripts toevoegen aan package.json, ze uitvoeren op de opdrachtregel, pre- en post-hooks gebruiken en regelargumenten en omgevingsvariabelen aan hen doorgeven.
npm-scripts zijn een krachtige manier om taken in JavaScript-projecten te automatiseren. Ze kunnen uw workflow verbeteren en u tijd besparen door u consistente opdrachten te geven om meerdere taken uit te voeren.