npm-scripts samler et sæt terminalkommandoer, som du kan bruge til at automatisere opgaver i et JavaScript-projekt. De giver også en ensartet måde at køre kommandoer på i forskellige miljøer.
Du kan opsætte npm-scripts i en package.json-fil, køre dem på kommandolinjen og bruge en lang række muligheder til at konfigurere deres adfærd.
Opsætning af npm-scripts i filen package.json
Du definerer typisk npm-scripts i en package.json-fil, der er placeret i roden af dit JavaScript-projekt. Dette er ikke et must, da du kan udføre scripts fra andre filer, men package.json gør det nemmere at få adgang til og administrere dine scripts.
Bemærk, at du skal have npm og Node installeret i dit udviklingsmiljø for at følge med. Her er nogle nyttige artikler:
- Hvordan installer Node.js og npm på Windows.
- Hvordan installer Node.js og npm på Ubuntu.
Følg nedenstående trin for at konfigurere et npm-script i package.json:
- Naviger til roden af dit projekt.
- Kør npm init på terminalen. Kommandoen vil stille dig nogle spørgsmål om dit projekt. Besvar dem for at oprette en passende package.json-fil.
npm init
- Find scripts-feltet i filen package.json. Her kan du tilføje navnet på et script og den kommando, det skal køre som nøgle/værdi-par. For eksempel udskriver scriptet nedenfor, kaldet hello-world, "Hello world" i terminalen, når det køres.
{
"scripts": {
"Hej Verden": "ekko \\"Hej Verden\\""
}
}
Her er nogle almindelige scripts til JavaScript-projekter:
- Start: Dette script starter udviklingsserveren. For eksempel kan det i et Node-projekt køre serveren ved hjælp af nodemon.
- bygge: Genererer produktionskoden til din applikation og kan bruge et værktøj som webpack til at formindske og samle koden.
- prøve: Dette script kører de test, der er defineret i dit projekt. Det kan køre en testramme som Jest.
- fnug: Et fnug-script kører et fnugværktøj såsom ESLint for at kontrollere koden for potentielle fejl.
- holde øje: Dette script overvåger kildekoden for ændringer og kører derefter en kommando. Det er nyttigt til at køre test igen eller genopbygge applikationen ved kodeændring.
- indsætte: Kører en kommando, der implementerer programmet til det angivne miljø som f.eks. produktion eller iscenesættelse.
Før og efter scripts
npm understøtter pre- og postscripts. Forhåndsscripts kører før et specifikt script, mens postscripts kører bagefter. Du kan oprette pre- og postscripts til ethvert script, bare præfikset "pre" eller "post" til dit scriptnavn.
Nedenfor er f.eks. prætest- og posttest-scripts, der kører henholdsvis før og efter testscriptet.
{
"scripts": {
"prætest": "npm run lint",
"prøve": "spøg",
"posttest": "npm kør build"
}
}
Kører npm-scripts fra package.json
Når du har tilføjet et npm-script til package.json, kan du køre det ved hjælp af kommandoen npmrun.
Her er syntaksen:
npm løb
For at køre det tidligere definerede startscript skal du f.eks. bruge:
npm løb start
Du kan udføre kommandoen npmrun alene for at få en liste over alle tilgængelige scripts i et projekt. Her er nogle eksempler på output:
Scripts tilgængelige i [email protected] via `npm run-script`:
Hej Verden
ekko "Hej verden"
Det viser navnet på scriptet og den kommando, det kører.
Brug af stenografiske kommandoer til at køre indbyggede scripts
npm understøtter flere indbyggede scripts, du kan køre ved hjælp af stenografikommandoer. For at køre et npm-script med navnet start, kan du f.eks. bruge npm start i stedet for npm run start.
Dette er mere praktisk og hurtigere end at skrive hele kommandoen. Andre indbyggede scripts, du kan køre som dette, inkluderer "test", "stop" og "genstart".
Kører flere npm-scripts
Du kan køre flere npm-scripts på to måder:
- Sekventielt
- Parallelt
Hvis du bruger Linux eller et hvilket som helst andet Unix-lignende system, kan du bruge standarden metoder til at køre flere kommandoer på én gang.
For at køre flere npm-scripts sekventielt brug &&, for eksempel:
npm kørsel start && npm test
For at køre flere npm-scripts parallelt brug &, for eksempel:
npm run server & npm run klient
I ikke-UNIX-miljøer kan du bruge kommandoen npm-run-all eller samtidig npm-pakken.
Brug af npm-run-all:
npm-run-all --parallel serverklient
Bruger samtidig i package.json.
"scripts": {
"dev": "samtidigt \\"npm køre server\\" \\"npm køre klient\\"",
}
Bemærk, at du skal installere pakkerne npm-run-all og Concurrently, før du bruger dem.
Fejlfinding af almindelige Npm-scriptfejl
Nedenfor er nogle almindelige fejl, du kan støde på, når du kører npm-scripts:
- npm fejl! manglende script — Denne fejl opstår, når du ikke har defineret det script, du forsøger at køre i filen package.json. Sørg for, at du staver scriptnavnet korrekt, og at det er defineret i script-feltet i filen package.json.
- Adgang nægtet — Denne fejl opstår, når du ikke har tilladelse til at køre et script, så sørg for, at du har de rigtige tilladelser.
- Manglende afhængigheder — Denne fejl opstår, når scriptet bruger en pakke, der ikke er installeret. Brug et værktøj som f.eks depcheck for at kontrollere, om der mangler afhængigheder fra package.json, så installer dem ved hjælp af npm install.
- Ukendt kommando — Denne fejl opstår normalt, når du kører et brugerdefineret script som en indbygget npm-kommando. Sørg for at bruge npm løb eller npm run-script når du kører brugerdefinerede scripts.
Brug af miljøvariabler i npm-scripts
Miljøvariabler giver dig mulighed for at videregive information uden hård kodning. For at bruge miljøvariabler i et npm-script kan du bruge cross-env npm-pakke. Dette værktøj hjælper dig med at indstille en miljøvariabel i ethvert miljø.
Begynd med at køre denne kommando på terminalen for at installere den som en dev-afhængighed:
npm jeg gemmer -D cross-env
Så brug det i dit script sådan her:
{
"scripts": {
"bygge": "cross-env NODE_ENV=produktionswebpakke"
}
}
Her sætter cross-env variablen NODE_ENV til "produktion".
Sende kommandolinjeargumenter til scripts
Du kan sende kommandolinjeargumenter til et npm-script ved at bruge to bindestreger "--" efter scriptnavnet. For eksempel kører følgende kommando testscriptet med watch-argumentet:
npm run test -- --watch
Du kan også sende et kommandolinjeargument til et npm-script som dette:
npm kør min-port --PORT=3000
Få adgang til det i scriptet som følger.
"scripts": {
"min-havn": "ekko \\"Port: $npm_config_PORT\\""
}
På et Windows-system skal du bruge dette:
"scripts": {
"min-havn": "ekko \\"Port: %npm_config_PORT%\\""
}
Scriptet skal udskrive "Port: 3000", når du kører det.
Hvorfor bruge npm-scripts?
Du kan tilføje scripts til package.json, køre dem på kommandolinjen, bruge pre- og post-hooks og videregive linjeargumenter og miljøvariabler til dem.
npm-scripts er en effektiv måde at automatisere opgaver i JavaScript-projekter på. De kan forbedre din arbejdsgang og spare dig tid ved at give dig ensartede kommandoer til at køre flere opgaver.