Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Pokud vyvíjíte Node.js aplikaci s velkým množstvím balíčků npm, není neobvyklé, že při sestavování projektu dojde k upozorněním nebo chybám, pokud se aktualizuje jeden nebo více balíčků. Někdy dochází ke konfliktu verzí nebo je verze balíčku zastaralá. Tady je několik rychlých tipů, které vám pomůžou nakonfigurovat souborpackage.json a pochopit, co se děje, když se zobrazí upozornění nebo chyby. Nejedná se o kompletního průvodce package.json a zaměřuje se pouze na správu verzí balíčků npm.
Systém správy verzí balíčků npm má striktní pravidla. Formát verze je následující:
[major].[minor].[patch]
Řekněme, že máte v aplikaci balíček s verzí 5.2.1. Hlavní verze je 5, podverze je 2 a patch je 1.
- V aktualizaci hlavní verze balíček obsahuje nové funkce, které jsou zpětně nekompatibilní, tj. zásadní změny.
- V aktualizaci podverze byly do balíčku přidány nové funkce, které jsou zpětně kompatibilní s dřívějšími verzemi balíčků.
- V aktualizaci oprav jsou zahrnuty některé opravy chyb. Opravy chyb jsou vždy zpětně kompatibilní.
Stojí za zmínku, že některé funkce balíčku npm mají závislosti. Pokud chcete například použít novou funkci balíčku kompilátoru TypeScriptu (ts-loader) s webpackem, je možné, že byste také museli aktualizovat balíček npm webpacku a balíček webpack-cli.
Pro usnadnění správy verzí balíčků npm podporuje několik notací, které můžete použít v package.json. Tyto zápisy můžete použít k řízení typu aktualizací balíčků, které chcete v aplikaci přijmout.
Řekněme, že používáte React a potřebujete zahrnout balíček npm react a react-dom . V souborupackage.json můžete tuto možnost zadat několika způsoby. Můžete například zadat použití přesné verze balíčku následujícím způsobem.
"dependencies": {
"react": "16.4.2",
"react-dom": "16.4.2",
},
Při použití předchozího zápisu získá npm vždy přesnou zadanou verzi, 16.4.2.
Pomocí speciální notace můžete omezit aktualizace na aktualizace oprav (opravy chyb). V tomto příkladu:
"dependencies": {
"react": "~16.4.2",
"react-dom": "~16.4.2",
},
Znak tilda (~) slouží k tomu, aby npm při opravě pouze aktualizoval balíček. Npm tedy může aktualizovat React 16.4.2 na verzi 16.4.3 (nebo 16.4.4 atd.), ale nepřijme aktualizaci na hlavní nebo menší verzi. Proto se verze 16.4.2 neaktualizuje na verzi 16.5.0.
Pomocí symbolu stříšky (^) můžete také určit, že npm může povyšit číslo menší verze.
"dependencies": {
"react": "^16.4.2",
"react-dom": "^16.4.2",
},
Pomocí tohoto zápisu může npm aktualizovat react 16.4.2 na 16.5.0 (nebo 16.5.1, 16.6.0 atd.), ale nepřijme aktualizaci na hlavní verzi. Proto se verze 16.4.2 neaktualizuje na verzi 17.0.0.
Když npm aktualizuje balíčky, vygeneruje package-lock.json soubor, který obsahuje seznam skutečných verzí balíčků npm použitých v aplikaci, včetně všech vnořených balíčků. I když package.json řídí přímé závislosti pro vaši aplikaci, neřídí vnořené závislosti (jiné balíčky npm vyžadované konkrétním balíčkem npm). Soubor package-lock.json můžete použít ve vývojovém cyklu, pokud potřebujete zajistit, aby ostatní vývojáři a testeři používali přesné balíčky, které používáte, včetně vnořených balíčků. Další informace najdete v package-lock.json v dokumentaci k npm.
V sadě Visual Studio se soubor package-lock.json nepřidá do projektu, ale najdete ho ve složce projektu.