Skripty npm obsahují sadu příkazů terminálu, které můžete použít k automatizaci úloh v projektu JavaScript. Poskytují také konzistentní způsob spouštění příkazů v různých prostředích.
Skripty npm můžete nastavit v souboru package.json, spouštět je na příkazovém řádku a používat širokou sadu možností pro konfiguraci jejich chování.
Nastavení skriptů npm v souboru package.json
Skripty npm obvykle definujete v souboru package.json, který se nachází v kořenovém adresáři vašeho projektu JavaScript. Není to nutnost, protože můžete spouštět skripty z jiných souborů, ale package.json usnadňuje přístup a správu vašich skriptů.
Abyste mohli pokračovat, musíte mít ve vývojovém prostředí nainstalované npm a Node. Zde je několik užitečných článků:
- Jak nainstalujte Node.js a npm na Windows.
- Jak nainstalujte Node.js a npm na Ubuntu.
Chcete-li nastavit skript npm v package.json, postupujte takto:
- Přejděte do kořenového adresáře vašeho projektu.
- Spusťte npm init na terminálu. Příkaz se vás zeptá na několik otázek o vašem projektu. Odpovězte na ně a vytvořte příslušný soubor package.json.
npm init
- V souboru package.json vyhledejte pole scripts. Zde můžete přidat název skriptu a příkaz, který má spustit, jako páry klíč/hodnota. Například níže uvedený skript, nazvaný hello-world, vypíše do terminálu při spuštění „Hello world“.
{
"skripty": {
"Ahoj světe": "echo \\"Ahoj světe\\""
}
}
Zde jsou některé běžné skripty pro projekty JavaScript:
- Start: Tento skript spustí vývojový server. Například v projektu Node může spustit server pomocí nodemon.
- stavět: Vygeneruje produkční kód pro vaši aplikaci a může použít nástroj jako webpack k minimalizaci a seskupení kódu.
- test: Tento skript spouští testy definované ve vašem projektu. Může provozovat testovací rámec jako Jest.
- vlákna: Skript lint spouští nástroj pro lintování, jako je ESLint, aby zkontroloval potenciální chyby v kódu.
- hodinky: Tento skript sleduje změny ve zdrojovém kódu a poté spustí příkaz. Je to užitečné pro opětovné spouštění testů nebo přestavbu aplikace při změně kódu.
- nasadit: Spustí příkaz, který nasadí aplikaci do určeného prostředí, jako je produkční nebo pracovní prostředí.
Předběžné a následné skripty
npm podporuje pre a post skripty. Předběžné skripty se spouštějí před konkrétním skriptem, zatímco následné skripty se spouštějí poté. Pro jakýkoli skript můžete vytvořit předběžné a následné skripty, stačí před název skriptu přidat předponu „pre“ nebo „post“.
Například níže jsou skripty pretest a posttest, které se spustí před a po testovacím skriptu.
{
"skripty": {
"předzkoušet": "npm run lint",
"test": "žert",
"posttest": "npm run build"
}
}
Spouštění skriptů npm z package.json
Jakmile do package.json přidáte skript npm, můžete jej spustit pomocí příkazu npmrun.
Zde je syntaxe:
běh npm
Chcete-li například spustit dříve definovaný spouštěcí skript, použijte:
npm spuštění běhu
Příkaz npmrun můžete spustit samostatně, abyste získali seznam všech dostupných skriptů v projektu. Zde je několik příkladů výstupu:
Skripty dostupné v [email protected] prostřednictvím `npm run-script`:
Ahoj světe
echo "Ahoj světe"
Uvádí název skriptu a příkaz, který spouští.
Použití zkrácených příkazů ke spouštění vestavěných skriptů
npm podporuje několik vestavěných skriptů, které můžete spustit pomocí zkrácených příkazů. Chcete-li například spustit skript npm s názvem start, můžete místo npm spustit start použít npm start.
Je to pohodlnější a rychlejší než psaní celého příkazu. Mezi další vestavěné skripty, které můžete takto spustit, patří „test“, „stop“ a „restart“.
Spouštění více skriptů npm
Více skriptů npm můžete spustit dvěma způsoby:
- Postupně
- Paralelně
Pokud používáte Linux nebo jakýkoli jiný systém podobný Unixu, můžete použít standard metody spouštění více příkazů najednou.
Chcete-li spustit více skriptů npm postupně, použijte &&, například:
spuštění spuštění npm && test npm
Chcete-li paralelně spustit více skriptů npm, použijte například:
npm spustit server a npm spustit klienta
V prostředích jiných než UNIX můžete použít příkaz npm-run-all nebo souběžně balíček npm.
Použití npm-run-all:
npm-run-all -- klient paralelního serveru
Současné použití v package.json.
"skripty": {
"dev": "současně \\"npm spustit server\\" \\"npm spustit klienta\\"",
}
Pamatujte, že před použitím musíte nainstalovat balíčky npm-run-all a Concurrently.
Odstraňování běžných chyb skriptu Npm
Níže jsou uvedeny některé běžné chyby, se kterými se můžete setkat při spouštění skriptů npm:
- npm chyba! chybí skript — K této chybě dochází, když jste nedefinovali skript, který se pokoušíte spustit v souboru package.json. Ujistěte se, že název skriptu píšete správně a že je definován v poli scripts souboru package.json.
- Přístup odepřen — K této chybě dochází, když nemáte oprávnění ke spuštění skriptu, takže se ujistěte, že máte správná oprávnění.
- Chybějící závislosti — K této chybě dochází, když skript používá balíček, který není nainstalován. Použijte nástroj jako depcheck zkontrolujte, zda v package.json chybí závislosti, a poté je nainstalujte pomocí npm install.
- Neznámý příkaz — K této chybě obvykle dochází, když spustíte vlastní skript jako vestavěný příkaz npm. Ujistěte se, že používáte běh npm nebo run-script npm při spouštění vlastních skriptů.
Použití proměnných prostředí ve skriptech npm
Proměnné prostředí umožňují předávat informace bez jejich tvrdého kódování. Chcete-li použít proměnné prostředí ve skriptu npm, můžete použít cross-env npm balíček. Tento nástroj vám pomůže nastavit proměnnou prostředí v jakémkoli prostředí.
Začněte spuštěním tohoto příkazu na terminálu a nainstalujte jej jako závislost pro vývojáře:
npm ukládám -D cross-env
Poté jej použijte ve svém skriptu takto:
{
"skripty": {
"stavět": "cross-env NODE_ENV=produkční webový balíček"
}
}
Zde cross-env nastaví proměnnou NODE_ENV na "production".
Předávání argumentů příkazového řádku do skriptů
Argumenty příkazového řádku můžete předat skriptu npm pomocí dvou pomlček "--" za názvem skriptu. Například následující příkaz spustí testovací skript s argumentem watch:
npm spustit test sledovat
Můžete také odeslat argument příkazového řádku do skriptu npm takto:
npm spustit můj port --PORT=3000
Poté k němu přistupte ve skriptu následovně.
"skripty": {
"můj přístav": "echo \\"Port: $npm_config_PORT\\""
}
V systému Windows použijte toto:
"skripty": {
"můj přístav": "echo \\"Port: %npm_config_PORT%\\""
}
Skript by měl při spuštění vypsat "Port: 3000".
Proč používat skripty npm?
Do souboru package.json můžete přidávat skripty, spouštět je na příkazovém řádku, používat před a post háčky a předávat jim argumenty řádku a proměnné prostředí.
Skripty npm jsou výkonným způsobem automatizace úloh v projektech JavaScript. Mohou zlepšit váš pracovní postup a ušetřit vám čas tím, že vám poskytnou konzistentní příkazy pro spouštění více úloh.