npm история вСрсий ΠΏΠ°ΠΊΠ΅Ρ‚Π°

NPM version: вСрсионированиС, история ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, Π΄Π΅ΠΏΠ»ΠΎΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

Как я Π²Π΅Π΄Ρƒ ΠΊΡ€Π°ΡΠΈΠ²ΡƒΡŽ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² своих ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ… ΠΈ дСплою ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ послС ΠΊΠΎΠΌΠΌΠΈΡ‚Π° (Π½Π΅Ρ‚, это Π½Π΅ git hooks).

Если Π²Ρ‹ Π½Π΅ ΠΏΠΈΡˆΠ΅Ρ‚Π΅ Π½Π° JavaScript, ΠΏΡƒΡΡ‚ΡŒ вас Π½Π΅ смущаСт слово β€œNPM”, это ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для любого языка.

npm история вСрсий ΠΏΠ°ΠΊΠ΅Ρ‚Π°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ npm история вСрсий ΠΏΠ°ΠΊΠ΅Ρ‚Π°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ npm история вСрсий ΠΏΠ°ΠΊΠ΅Ρ‚Π°. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ npm история вСрсий ΠΏΠ°ΠΊΠ΅Ρ‚Π°. Π€ΠΎΡ‚ΠΎ npm история вСрсий ΠΏΠ°ΠΊΠ΅Ρ‚Π°

ВСрсионированиС

Главная, казалось Π±Ρ‹, Ρ†Π΅Π»ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹: ΠΎΡ‚ΠΌΠ΅Ρ‡Π°Ρ‚ΡŒ вСрсии.

Из ΠΊΠΎΡ€ΠΎΠ±ΠΊΠΈ это Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ npm version ΠΈ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΡƒ Π·Π°Π΄Π°Ρ‡ ΠΏΠΎ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ΅ Π½ΠΎΠ²ΠΎΠΉ вСрсии. Π’Π°Ρ€ΠΈΠ°Π½Ρ‚Π° собствСнно Ρ‚Ρ€ΠΈ:

Но ΠΌΠΎΠΆΠ½ΠΎ ΠΈ ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π²Π΅Ρ€ΡΠΈΡŽ Π²ΠΏΠΈΡΠ°Ρ‚ΡŒ, Π½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎ semver.

Π§Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Ρ‘Ρ‚:

ΠœΠΈΠ½ΡƒΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ Π½Π° ΠΊΠ°ΠΆΠ΄ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ, ΠΊΠΎΠ³ΠΎ-Ρ‚ΠΎ это ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π·Π΄Ρ€Π°ΠΆΠ°Ρ‚ΡŒ, мСня Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚ Ρ€Π°Π·Π΄Ρ€Π°ΠΆΠ°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ просматривая список ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Π½Π° Github Π½Π΅ Π²ΠΈΠ΄Π½ΠΎ вСрсий, ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ вСрсий ΠΈΡΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ это.

Как Π΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚Π΅Π³ΠΈ 1.2.3 вмСсто v1.2.3 (ΡƒΠ±Ρ€Π°Ρ‚ΡŒ v ΠΈΠ· Ρ‚Π΅Π³Π° вСрсии):

АвтоматичСский Changelog

CHANGELOG.md гСнСрится ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ΠΎΠΉ conventional-changelog.

Об этом я ΡƒΠΆΠ΅ писал 4 Π³ΠΎΠ΄Π° Π½Π°Π·Π°Π΄. Π’Π°ΠΌ я описывал свои поиски, здСсь ΠΎΠΏΠΈΡˆΡƒ, ΠΊ Ρ‡Π΅ΠΌΡƒ я ΠΏΡ€ΠΈΡˆΡ‘Π».

Π‘ Ρ‚Π΅Ρ… ΠΏΠΎΡ€ я всС ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ Π½Π°Π·Ρ‹Π²Π°ΡŽ ΠΏΠΎ Angular Conventions. НС ΠΏΡƒΠ³Π°ΠΉΡ‚Π΅ΡΡŒ β€œAngular” Π² Π½Π°Π·Π²Π°Π½ΠΈΠΈ, Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ привязки Ρ‚Π°ΠΌ Π½Π΅Ρ‚.

Π’ 2 словах ΠΎ ΡΠΎΠ³Π»Π°ΡˆΠ΅Π½ΠΈΡΡ…:

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅, насколько я ΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡΡŒ:

Π‘ΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚ структуру:

Π― ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°ΡŽΡΡŒ:

Π’ΠΈΠΏΡ‹, Π² порядкС, ΠΊΠ°ΠΊ я ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ:

Π’ Ρ„ΡƒΡ‚Π΅Ρ€Π΅ принято ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»ΡΡ‚ΡŒ ссылки Π½Π° связанныС Π·Π°Π΄Π°Ρ‡ΠΈ.

CHANGELOG.md ΠΏΡ€ΠΈ Ρ‚Π°ΠΊΠΎΠΌ ΠΊΠΎΠ½Ρ„ΠΈΠ³Π΅ ΠΏΠΎΠΏΠ°Π΄Ρ‘Ρ‚ Π² ΠΊΠΎΠΌΠΌΠΈΡ‚ вСрсии, Ρ‡Ρ‚ΠΎ ΡƒΠ΄ΠΎΠ±Π½ΠΎ, Π΄Π° ΠΈ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ вСрсий становятся Π½Π΅ Ρ‚Π°ΠΊΠΈΠΌΠΈ ΡƒΠΆ бСсполСзными.

МоТно ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ standard-changelog чисто ΠΏΠΎΠ΄ ангуларовский Ρ„ΠΎΡ€ΠΌΠ°Ρ‚, я ΠΏΠΎ историчСским ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌ Π΅Π³ΠΎ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ.

ΠšΡ€Π°ΡΠΈΠ²Ρ‹Π΅ releases Π½Π° Github

conventional-github-releaser ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Ρ‚ΠΎΡ‚ ΠΆΠ΅ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ извлСчСния описания ΠΈΠ· ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ², Π½ΠΎ ΠΏΠΈΡˆΠ΅Ρ‚ Π½Π΅ Π² Ρ„Π°ΠΉΠ», Π° Π² Ρ€Π΅Π»ΠΈΠ· Π½Π° Github.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π΅ Ρ…ΠΎΡ‚Π΅Ρ‚ΡŒ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΎΠΌ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ release ΠΏΡ€ΠΈ вСрсионировании, Ρ‚ΠΎΠ³Π΄Π° Π΄ΡƒΠΌΠ°ΡŽ Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Руководство ΠΏΠΎ Node.js, Ρ‡Π°ΡΡ‚ΡŒ 5: npm ΠΈ npx

БСгодня, Π² пятой части ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° руководства ΠΏΠΎ Node.js, ΠΌΡ‹ Π·Π°Π²Π΅Ρ€ΡˆΠΈΠΌ Ρ€Π°Π·Π±ΠΎΡ€ возмоТностСй npm, Π² частности, коснёмся Ρ‚Π°ΠΊΠΈΡ… вопросов, ΠΊΠ°ΠΊ выяснСниС установлСнных вСрсий npm-ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², установка старых вСрсий ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ зависимостСй, локальная ΠΈ глобальная дСинсталляция ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ². Π—Π΄Π΅ΡΡŒ ΠΆΠ΅ ΠΌΡ‹ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΈ ΠΎΠ± npx.

npm история вСрсий ΠΏΠ°ΠΊΠ΅Ρ‚Π°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ npm история вСрсий ΠΏΠ°ΠΊΠ΅Ρ‚Π°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ npm история вСрсий ΠΏΠ°ΠΊΠ΅Ρ‚Π°. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ npm история вСрсий ΠΏΠ°ΠΊΠ΅Ρ‚Π°. Π€ΠΎΡ‚ΠΎ npm история вСрсий ΠΏΠ°ΠΊΠ΅Ρ‚Π°

ВыяснСниС вСрсий установлСнных npm-ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ²

Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ вСрсии всСх установлСнных Π² ΠΏΠ°ΠΏΠΊΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° npm-ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΈΡ… зависимости, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

Π’ΠΎ ΠΆΠ΅ самоС ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΈ просмотрСв Ρ„Π°ΠΉΠ» package-lock.json ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Π½ΠΎ Π΄Ρ€Π΅Π²ΠΎΠ²ΠΈΠ΄Π½ΡƒΡŽ структуру, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Π²Ρ‹ΡˆΠ΅ΠΎΠΏΠΈΡΠ°Π½Π½Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°, ΡƒΠ΄ΠΎΠ±Π½Π΅Π΅ ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ.

Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΉ список ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², установлСнных глобально, ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:

ВывСсти Ρ‚ΠΎΠ»ΡŒΠΊΠΎ свСдСния ΠΎ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ°ΠΊΠ΅Ρ‚Π°Ρ… Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ уровня (Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ, Ρ‚Π΅Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ устанавливали ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ пСрСчислСны Π² package.json ) ΠΌΠΎΠΆΠ½ΠΎ Ρ‚Π°ΠΊ:

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅, Ссли, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, устанавливали Π²Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚ cowsay, Π²Ρ‹Π²Π΅Π΄Π΅Π½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ Π²Π΅Ρ€ΡΠΈΡŽ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚Π°, Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ΡΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Π΅Ρ‘ выполнСния получится ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΈ для выяснСния вСрсий зависимостСй установлСнных Π²Π°ΠΌΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ². ΠŸΡ€ΠΈ этом Π² качСствС ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚Π°, ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΠΎΠ³ΠΎ Π΅ΠΉ, выступаСт имя ΠΏΠ°ΠΊΠ΅Ρ‚Π°-зависимости, Π° Π²Ρ‹Π²ΠΎΠ΄ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Π—Π°ΠΏΠΈΡΡŒ ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚Π΅-зависимости Π² этой структурС Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π΄Π΅Π»Π΅Π½Π°.

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊΠΎΠ² Π½ΠΎΠΌΠ΅Ρ€ самой свСТСй вСрсии Π½Π΅ΠΊΠΎΠ΅Π³ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚Π°, доступного Π² npm-Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ, Π²Π°ΠΌ понадобится ΠΊΠΎΠΌΠ°Π½Π΄Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ Π²ΠΈΠ΄Π°:

Π’ ΠΎΡ‚Π²Π΅Ρ‚ ΠΎΠ½Π° Π²Ρ‹Π΄Π°Ρ‘Ρ‚ Π½ΠΎΠΌΠ΅Ρ€ вСрсии ΠΏΠ°ΠΊΠ΅Ρ‚Π°:

Установка старых вСрсий npm-ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ²

Установка старой вСрсии npm-ΠΏΠ°ΠΊΠ΅Ρ‚Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ совмСстимости. Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π½ΡƒΠΆΠ½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ ΠΏΠ°ΠΊΠ΅Ρ‚Π° ΠΈΠ· npm ΠΌΠΎΠΆΠ½ΠΎ, воспользовавшись ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ конструкциСй:

Π’ случаС с ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΌ Π½Π°ΠΌΠΈ Π² качСствС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠΌ cowsay, ΠΊΠΎΠΌΠ°Π½Π΄Π° npm install cowsay установит Π΅Π³ΠΎ ΡΠ°ΠΌΡƒΡŽ ΡΠ²Π΅ΠΆΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ (1.3.1 Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ‚ написания этого ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π°). Если ΠΆΠ΅ Π½Π°Π΄ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π²Π΅Ρ€ΡΠΈΡŽ 1.2.0, Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:

Π£ΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ вСрсии ΠΌΠΎΠΆΠ½ΠΎ ΠΈ устанавливая Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹:

Если Π²Π°ΠΌ понадобится ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊΠΈΠ΅ вСрсии Π½Π΅ΠΊΠΎΠ΅Π³ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚Π° ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ Π² npm, ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это ΠΌΠΎΠΆΠ½ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ‚Π°ΠΊΠΎΠΉ конструкции:

Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° Π΅Ρ‘ Ρ€Π°Π±ΠΎΡ‚Ρ‹:

ОбновлСниС зависимостСй ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π΄ΠΎ ΠΈΡ… самых свСТих вСрсий

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, устанавливая Π½Π΅ΠΊΠΈΠΉ ΠΏΠ°ΠΊΠ΅Ρ‚, npm Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΈ устанавливаСт Π΅Π³ΠΎ зависимости.

Π’ package-lock.json Ρ‚Π°ΠΊ ΠΆΠ΅ Π±ΡƒΠ΄ΡƒΡ‚ внСсСны свСдСния ΠΎΠ± этом ΠΏΠ°ΠΊΠ΅Ρ‚Π΅. Π’ΠΎΡ‚ Π΅Π³ΠΎ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚:

Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ, Π²Ρ‹ΡˆΠ»ΠΈ Π»ΠΈ Π½ΠΎΠ²Ρ‹Π΅ вСрсии ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:

Π’ΠΎΡ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ выполнСния этой ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ для ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, зависимости ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π΄Π°Π²Π½ΠΎ Π½Π΅ обновлялись:

npm история вСрсий ΠΏΠ°ΠΊΠ΅Ρ‚Π°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ npm история вСрсий ΠΏΠ°ΠΊΠ΅Ρ‚Π°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ npm история вСрсий ΠΏΠ°ΠΊΠ΅Ρ‚Π°. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ npm история вСрсий ΠΏΠ°ΠΊΠ΅Ρ‚Π°. Π€ΠΎΡ‚ΠΎ npm история вСрсий ΠΏΠ°ΠΊΠ΅Ρ‚Π°

Анализ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΡ… зависимостСй ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒΡΡ Π΄ΠΎ Π½ΠΎΠ²Ρ‹Ρ… ΠΌΠ°ΠΆΠΎΡ€Π½Ρ‹Ρ… вСрсий всСх ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², глобально установитС ΠΏΠ°ΠΊΠ΅Ρ‚ npm-check-updates :

Π—Π°Ρ‚Π΅ΠΌ запуститС ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρƒ, ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΠ΅ΠΌΡƒΡŽ ΠΈΠΌ:

Π›ΠΎΠΊΠ°Π»ΡŒΠ½Π°Ρ ΠΈΠ»ΠΈ глобальная дСинсталляция ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ²

), Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ Π²ΠΈΠ΄Π°:

ΠŸΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ тСкущая ΠΏΠ°ΠΏΠΊΠ° значСния Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚.

О Π²Ρ‹Π±ΠΎΡ€Π΅ ΠΌΠ΅ΠΆΠ΄Ρƒ глобальной ΠΈ локальной установкой ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ²

Когда ΠΈ ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ Π»ΡƒΡ‡ΡˆΠ΅ всСго ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ глобально? Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚Π²Π΅Ρ‚ΠΈΡ‚ΡŒ Π½Π° этот вопрос, вспомним ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Π΅ΠΌ Ρ€Π°Π·Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ локальная ΠΈ глобальная установка ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ²:

.

ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΈ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² Π² ΠΊΠΎΠ΄Π΅ осущСствляСтся ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ:

Π˜Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊΠΎΠΉ ΠΆΠ΅ способ установки ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² Π»ΡƒΡ‡ΡˆΠ΅ всСго ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ?

Π’ ΠΎΠ±Ρ‰Π΅ΠΌ случаС, всС ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ слСдуСт ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ локально. Благодаря этому, Π΄Π°ΠΆΠ΅ Ссли Ρƒ вас ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ дСсятки Node.js-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ, ΠΏΡ€ΠΈ нСобходимости, использованиС ΠΈΠΌΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… вСрсий ΠΎΠ΄Π½ΠΈΡ… ΠΈ Ρ‚Π΅Ρ… ΠΆΠ΅ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ².

ОбновлСниС глобального ΠΏΠ°ΠΊΠ΅Ρ‚Π° ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ всС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΠ½ примСняСтся, Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π½ΠΎΠ²Ρ‹ΠΉ Ρ€Π΅Π»ΠΈΠ·. НСслоТно ΠΏΠΎΠ½ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ это, Π² ΠΏΠ»Π°Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ настоящСму ΠΊΠΎΡˆΠΌΠ°Ρ€Ρƒ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π½ΠΎΠ²Ρ‹Π΅ Ρ€Π΅Π»ΠΈΠ·Ρ‹ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ нСсовмСстимыми с ΠΈΡ… старыми вСрсиями.

Если Ρƒ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° имССтся собствСнная локальная вСрсия Π½Π΅ΠΊΠΎΠ΅Π³ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚Π°, Π΄Π°ΠΆΠ΅ ΠΏΡ€ΠΈ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ пустой Ρ‚Ρ€Π°Ρ‚ΠΎΠΉ рСсурсов, это β€” ΠΎΡ‡Π΅Π½ΡŒ нСбольшая ΠΏΠ»Π°Ρ‚Π° Π·Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ Π½Π΅Π³Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… послСдствий, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹Π·Π²Π°Π½Ρ‹ Π½Π΅ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒΡŽ Π½ΠΎΠ²Ρ‹Ρ… вСрсий ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², обновляСмых Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎ, с ΠΊΠΎΠ΄ΠΎΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ².

ΠŸΠ°ΠΊΠ΅Ρ‚Ρ‹ слСдуСт ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ глобально Π² Ρ‚ΠΎΠΌ случаС, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой Π½Π΅ΠΊΠΈΠ΅ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹, Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π²ΠΎ мноТСствС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ².

ΠŸΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ ΠΈ локально, запуская прСдоставляСмыС ΠΈΠΌΠΈ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки с использованиСм npx, Π½ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹, всё ΠΆΠ΅, Π»ΡƒΡ‡ΡˆΠ΅ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ глобально. К Ρ‚Π°ΠΊΠΈΠΌ ΠΏΠ°ΠΊΠ΅Ρ‚Π°ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Π°ΠΌ, Π²ΠΏΠΎΠ»Π½Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π·Π½Π°ΠΊΠΎΠΌΡ‹, ΠΌΠΎΠΆΠ½ΠΎ отнСсти, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅:

О зависимостях ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ²

Когда ΠΏΠ°ΠΊΠ΅Ρ‚ слСдуСт Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½ΡƒΡŽ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡƒΡŽ для обСспСчСния Π΅Π³ΠΎ функционирования, Π° ΠΊΠΎΠ³Π΄Π° β€” ΠΊΠ°ΠΊ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ?

ΠŸΡ€ΠΈ установкС ΠΏΠ°ΠΊΠ΅Ρ‚Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π²ΠΈΠ΄Π° npm install

Зависимости Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ β€” это ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½ΡƒΠΆΠ½Ρ‹ Π² процСссС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Π² Ρ…ΠΎΠ΄Π΅ Π΅Π³ΠΎ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ функционирования ΠΎΠ½ΠΈ Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ. К Ρ‚Π°ΠΊΠΈΠΌ ΠΏΠ°ΠΊΠ΅Ρ‚Π°ΠΌ относятся, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ инструмСнты тСстирования, Webpack, Babel.

Π£Ρ‚ΠΈΠ»ΠΈΡ‚Π° npx

БСйчас ΠΌΡ‹ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎΠ± ΠΎΠ΄Π½ΠΎΠΉ вСсьма ΠΌΠΎΡ‰Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π΅, npx, которая появилась Π² npm 5.2. Одной ΠΈΠ· Π΅Ρ‘ возмоТностСй являСтся запуск исполняСмых Ρ„Π°ΠΉΠ»ΠΎΠ², входящих Π² состав npm-ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ². ΠœΡ‹ ΡƒΠΆΠ΅ рассматривали использованиС npx для запуска ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° ΠΈΠ· ΠΏΠ°ΠΊΠ΅Ρ‚Π° cowsay. Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎΠ± этом ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅.

β–Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ npx для упрощСния запуска Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄

Node.js-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π»ΠΈ мноТСство исполняСмых Ρ„Π°ΠΉΠ»ΠΎΠ² (ΡƒΡ‚ΠΈΠ»ΠΈΡ‚) Π² Π²ΠΈΠ΄Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π»ΠΎΡΡŒ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ глобально, Ρ‡Ρ‚ΠΎ обСспСчивало ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ доступ ΠΊ ΠΈΡ… возмоТностям, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΈΡ… ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ, просто ввСдя имя ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. Однако Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² Ρ‚Π°ΠΊΠΎΠΉ срСдС Π±Ρ‹Π»ΠΎ вСсьма Π½Π΅ΠΊΠΎΠΌΡ„ΠΎΡ€Ρ‚Π½ΠΎ Π² Ρ‚ΠΎΠΌ случаС, Ссли Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π»ΠΎΡΡŒ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Π΅ вСрсии ΠΎΠ΄Π½ΠΈΡ… ΠΈ Ρ‚Π΅Ρ… ΠΆΠ΅ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ².

▍ВыполнСниС ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ Π±Π΅Π· нСобходимости ΠΈΡ… установки

Π’ npx имССтся Π΅Ρ‰Ρ‘ ΠΎΠ΄Π½Π° ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΠ½Π΅ΠΉΡˆΠ°Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ, благодаря ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Π±Π΅Π· ΠΈΡ… ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ установки. ПолСзно это, Π² основном, ΠΏΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌ:

Если ΠΆΠ΅ ΠΏΠ°ΠΊΠ΅Ρ‚ cowsay Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ установлСн глобально, подобная ΠΊΠΎΠΌΠ°Π½Π΄Π° выдаст ΠΎΡˆΠΈΠ±ΠΊΡƒ.

Π£Ρ‚ΠΈΠ»ΠΈΡ‚Π° npx позволяСт Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π±Π΅Π· ΠΈΡ… установки. Выглядит это, Π² Ρ€Π°ΠΌΠΊΠ°Ρ… нашСго ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°, Ρ‚Π°ΠΊ:

Вакая ΠΊΠΎΠΌΠ°Π½Π΄Π° сработаСт, Π½ΠΎ, хотя «говорящая» ΠΊΠΎΡ€ΠΎΠ²Π°, ΠΏΠΎ Π±ΠΎΠ»ΡŒΡˆΠΎΠΌΡƒ счёту, особой ΠΏΠΎΠ»ΡŒΠ·Ρ‹ Π½Π΅ приносит, Ρ‚ΠΎΡ‚ ΠΆΠ΅ самый ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ для выполнСния ΠΊΡƒΠ΄Π° Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄. Π’ΠΎΡ‚ нСсколько ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ²:

▍Запуск JavaScript-ΠΊΠΎΠ΄Π° с использованиСм Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… вСрсий Node.js

Π­Ρ‚ΠΎ позволяСт ΠΎΡ‚ΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ использования инструмСнтов Π½Π°ΠΏΠΎΠ΄ΠΎΠ±ΠΈΠ΅ nvm ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ΠΎΠ² вСрсий Node.js.

▍Запуск ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹Ρ… Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΊΠΎΠ΄Π°, доступных ΠΏΠΎ Π½Π΅ΠΊΠΎΠ΅ΠΌΡƒ адрСсу

Npx позволяСт Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠΎΠ΄, ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π² npm. Π’ частности, Ссли Ρƒ вас Π΅ΡΡ‚ΡŒ ссылка Π½Π° Π½Π΅ΠΊΠΈΠΉ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ΠΊΠΎΠ΄Π° (скаТСм, ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π½Π° GitHub gist), Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Ρ‚Π°ΠΊ:

ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° нСльзя Π·Π°Π±Ρ‹Π²Π°Ρ‚ΡŒ ΠΎ бСзопасности. Npx Π΄Π°Ρ‘Ρ‚ Π² Ρ€ΡƒΠΊΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° большиС возмоТности, Π½ΠΎ ΠΎΠ½ΠΈ ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‚ ΠΈ Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ ΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²Π΅Π½Π½ΠΎΡΡ‚ΡŒ.

β–Π˜Ρ‚ΠΎΠ³ΠΈ

БСгодня ΠΌΡ‹ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΈ ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ°Ρ… npm ΠΈ ΠΎΠ± использовании npx. На Π΄Π°Π½Π½ΠΎΠΌ этапС Ρƒ вас Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠ»ΠΎΠΆΠΈΡ‚ΡŒΡΡ Π±Π°Π·ΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ устройства npm ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Ρ€Π°Π±ΠΎΡ‚Ρ‹ с этим ΠΏΠ°ΠΊΠ΅Ρ‚Π½Ρ‹ΠΌ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ΠΎΠΌ. Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π±ΠΎΠ»Π΅Π΅ Π³Π»ΡƒΠ±ΠΎΠΊΠΎ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ npm β€” ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ΡΡŒ ΠΊ страницС Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈ побольшС экспСримСнтируйтС.

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ€Π°Π· ΠΌΡ‹ обсудим Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Π°Π·ΠΎΠ²Ρ‹Π΅ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ Node.js, ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ для ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ для этой ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹.

Π£Π²Π°ΠΆΠ°Π΅ΠΌΡ‹Π΅ Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»ΠΈ! ΠŸΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ΡΡŒ Π»ΠΈ Π²Ρ‹ npx?

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Руководство ΠΏΠΎ Node.js, Ρ‡Π°ΡΡ‚ΡŒ 5: npm ΠΈ npx

БСгодня, Π² пятой части ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° руководства ΠΏΠΎ Node.js, ΠΌΡ‹ Π·Π°Π²Π΅Ρ€ΡˆΠΈΠΌ Ρ€Π°Π·Π±ΠΎΡ€ возмоТностСй npm, Π² частности, коснёмся Ρ‚Π°ΠΊΠΈΡ… вопросов, ΠΊΠ°ΠΊ выяснСниС установлСнных вСрсий npm-ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², установка старых вСрсий ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ зависимостСй, локальная ΠΈ глобальная дСинсталляция ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ². Π—Π΄Π΅ΡΡŒ ΠΆΠ΅ ΠΌΡ‹ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΈ ΠΎΠ± npx.

npm история вСрсий ΠΏΠ°ΠΊΠ΅Ρ‚Π°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ npm история вСрсий ΠΏΠ°ΠΊΠ΅Ρ‚Π°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ npm история вСрсий ΠΏΠ°ΠΊΠ΅Ρ‚Π°. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ npm история вСрсий ΠΏΠ°ΠΊΠ΅Ρ‚Π°. Π€ΠΎΡ‚ΠΎ npm история вСрсий ΠΏΠ°ΠΊΠ΅Ρ‚Π°

ВыяснСниС вСрсий установлСнных npm-ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ²

Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ вСрсии всСх установлСнных Π² ΠΏΠ°ΠΏΠΊΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° npm-ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΈΡ… зависимости, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

Π’ΠΎ ΠΆΠ΅ самоС ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΈ просмотрСв Ρ„Π°ΠΉΠ» package-lock.json ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Π½ΠΎ Π΄Ρ€Π΅Π²ΠΎΠ²ΠΈΠ΄Π½ΡƒΡŽ структуру, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Π²Ρ‹ΡˆΠ΅ΠΎΠΏΠΈΡΠ°Π½Π½Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°, ΡƒΠ΄ΠΎΠ±Π½Π΅Π΅ ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ.

Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΉ список ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², установлСнных глобально, ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:

ВывСсти Ρ‚ΠΎΠ»ΡŒΠΊΠΎ свСдСния ΠΎ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ°ΠΊΠ΅Ρ‚Π°Ρ… Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ уровня (Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ, Ρ‚Π΅Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ устанавливали ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ пСрСчислСны Π² package.json ) ΠΌΠΎΠΆΠ½ΠΎ Ρ‚Π°ΠΊ:

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅, Ссли, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, устанавливали Π²Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚ cowsay, Π²Ρ‹Π²Π΅Π΄Π΅Π½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ Π²Π΅Ρ€ΡΠΈΡŽ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚Π°, Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ΡΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Π΅Ρ‘ выполнСния получится ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΈ для выяснСния вСрсий зависимостСй установлСнных Π²Π°ΠΌΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ². ΠŸΡ€ΠΈ этом Π² качСствС ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚Π°, ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΠΎΠ³ΠΎ Π΅ΠΉ, выступаСт имя ΠΏΠ°ΠΊΠ΅Ρ‚Π°-зависимости, Π° Π²Ρ‹Π²ΠΎΠ΄ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Π—Π°ΠΏΠΈΡΡŒ ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚Π΅-зависимости Π² этой структурС Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π΄Π΅Π»Π΅Π½Π°.

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊΠΎΠ² Π½ΠΎΠΌΠ΅Ρ€ самой свСТСй вСрсии Π½Π΅ΠΊΠΎΠ΅Π³ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚Π°, доступного Π² npm-Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ, Π²Π°ΠΌ понадобится ΠΊΠΎΠΌΠ°Π½Π΄Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ Π²ΠΈΠ΄Π°:

Π’ ΠΎΡ‚Π²Π΅Ρ‚ ΠΎΠ½Π° Π²Ρ‹Π΄Π°Ρ‘Ρ‚ Π½ΠΎΠΌΠ΅Ρ€ вСрсии ΠΏΠ°ΠΊΠ΅Ρ‚Π°:

Установка старых вСрсий npm-ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ²

Установка старой вСрсии npm-ΠΏΠ°ΠΊΠ΅Ρ‚Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ совмСстимости. Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π½ΡƒΠΆΠ½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ ΠΏΠ°ΠΊΠ΅Ρ‚Π° ΠΈΠ· npm ΠΌΠΎΠΆΠ½ΠΎ, воспользовавшись ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ конструкциСй:

Π’ случаС с ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΌ Π½Π°ΠΌΠΈ Π² качСствС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠΌ cowsay, ΠΊΠΎΠΌΠ°Π½Π΄Π° npm install cowsay установит Π΅Π³ΠΎ ΡΠ°ΠΌΡƒΡŽ ΡΠ²Π΅ΠΆΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ (1.3.1 Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ‚ написания этого ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π°). Если ΠΆΠ΅ Π½Π°Π΄ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π²Π΅Ρ€ΡΠΈΡŽ 1.2.0, Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:

Π£ΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ вСрсии ΠΌΠΎΠΆΠ½ΠΎ ΠΈ устанавливая Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹:

Если Π²Π°ΠΌ понадобится ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊΠΈΠ΅ вСрсии Π½Π΅ΠΊΠΎΠ΅Π³ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚Π° ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ Π² npm, ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это ΠΌΠΎΠΆΠ½ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ‚Π°ΠΊΠΎΠΉ конструкции:

Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° Π΅Ρ‘ Ρ€Π°Π±ΠΎΡ‚Ρ‹:

ОбновлСниС зависимостСй ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π΄ΠΎ ΠΈΡ… самых свСТих вСрсий

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, устанавливая Π½Π΅ΠΊΠΈΠΉ ΠΏΠ°ΠΊΠ΅Ρ‚, npm Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΈ устанавливаСт Π΅Π³ΠΎ зависимости.

Π’ package-lock.json Ρ‚Π°ΠΊ ΠΆΠ΅ Π±ΡƒΠ΄ΡƒΡ‚ внСсСны свСдСния ΠΎΠ± этом ΠΏΠ°ΠΊΠ΅Ρ‚Π΅. Π’ΠΎΡ‚ Π΅Π³ΠΎ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚:

Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ, Π²Ρ‹ΡˆΠ»ΠΈ Π»ΠΈ Π½ΠΎΠ²Ρ‹Π΅ вСрсии ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:

Π’ΠΎΡ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ выполнСния этой ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ для ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, зависимости ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π΄Π°Π²Π½ΠΎ Π½Π΅ обновлялись:

npm история вСрсий ΠΏΠ°ΠΊΠ΅Ρ‚Π°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ npm история вСрсий ΠΏΠ°ΠΊΠ΅Ρ‚Π°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ npm история вСрсий ΠΏΠ°ΠΊΠ΅Ρ‚Π°. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ npm история вСрсий ΠΏΠ°ΠΊΠ΅Ρ‚Π°. Π€ΠΎΡ‚ΠΎ npm история вСрсий ΠΏΠ°ΠΊΠ΅Ρ‚Π°

Анализ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΡ… зависимостСй ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒΡΡ Π΄ΠΎ Π½ΠΎΠ²Ρ‹Ρ… ΠΌΠ°ΠΆΠΎΡ€Π½Ρ‹Ρ… вСрсий всСх ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², глобально установитС ΠΏΠ°ΠΊΠ΅Ρ‚ npm-check-updates :

Π—Π°Ρ‚Π΅ΠΌ запуститС ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρƒ, ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΠ΅ΠΌΡƒΡŽ ΠΈΠΌ:

Π›ΠΎΠΊΠ°Π»ΡŒΠ½Π°Ρ ΠΈΠ»ΠΈ глобальная дСинсталляция ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ²

), Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ Π²ΠΈΠ΄Π°:

ΠŸΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ тСкущая ΠΏΠ°ΠΏΠΊΠ° значСния Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚.

О Π²Ρ‹Π±ΠΎΡ€Π΅ ΠΌΠ΅ΠΆΠ΄Ρƒ глобальной ΠΈ локальной установкой ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ²

Когда ΠΈ ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ Π»ΡƒΡ‡ΡˆΠ΅ всСго ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ глобально? Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚Π²Π΅Ρ‚ΠΈΡ‚ΡŒ Π½Π° этот вопрос, вспомним ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Π΅ΠΌ Ρ€Π°Π·Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ локальная ΠΈ глобальная установка ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ²:

.

ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΈ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² Π² ΠΊΠΎΠ΄Π΅ осущСствляСтся ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ:

Π˜Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊΠΎΠΉ ΠΆΠ΅ способ установки ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² Π»ΡƒΡ‡ΡˆΠ΅ всСго ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ?

Π’ ΠΎΠ±Ρ‰Π΅ΠΌ случаС, всС ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ слСдуСт ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ локально. Благодаря этому, Π΄Π°ΠΆΠ΅ Ссли Ρƒ вас ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ дСсятки Node.js-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ, ΠΏΡ€ΠΈ нСобходимости, использованиС ΠΈΠΌΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… вСрсий ΠΎΠ΄Π½ΠΈΡ… ΠΈ Ρ‚Π΅Ρ… ΠΆΠ΅ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ².

ОбновлСниС глобального ΠΏΠ°ΠΊΠ΅Ρ‚Π° ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ всС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΠ½ примСняСтся, Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π½ΠΎΠ²Ρ‹ΠΉ Ρ€Π΅Π»ΠΈΠ·. НСслоТно ΠΏΠΎΠ½ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ это, Π² ΠΏΠ»Π°Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ настоящСму ΠΊΠΎΡˆΠΌΠ°Ρ€Ρƒ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π½ΠΎΠ²Ρ‹Π΅ Ρ€Π΅Π»ΠΈΠ·Ρ‹ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ нСсовмСстимыми с ΠΈΡ… старыми вСрсиями.

Если Ρƒ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° имССтся собствСнная локальная вСрсия Π½Π΅ΠΊΠΎΠ΅Π³ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚Π°, Π΄Π°ΠΆΠ΅ ΠΏΡ€ΠΈ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ пустой Ρ‚Ρ€Π°Ρ‚ΠΎΠΉ рСсурсов, это β€” ΠΎΡ‡Π΅Π½ΡŒ нСбольшая ΠΏΠ»Π°Ρ‚Π° Π·Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ Π½Π΅Π³Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… послСдствий, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹Π·Π²Π°Π½Ρ‹ Π½Π΅ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒΡŽ Π½ΠΎΠ²Ρ‹Ρ… вСрсий ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², обновляСмых Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎ, с ΠΊΠΎΠ΄ΠΎΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ².

ΠŸΠ°ΠΊΠ΅Ρ‚Ρ‹ слСдуСт ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ глобально Π² Ρ‚ΠΎΠΌ случаС, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой Π½Π΅ΠΊΠΈΠ΅ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹, Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π²ΠΎ мноТСствС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ².

ΠŸΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ ΠΈ локально, запуская прСдоставляСмыС ΠΈΠΌΠΈ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки с использованиСм npx, Π½ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹, всё ΠΆΠ΅, Π»ΡƒΡ‡ΡˆΠ΅ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ глобально. К Ρ‚Π°ΠΊΠΈΠΌ ΠΏΠ°ΠΊΠ΅Ρ‚Π°ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Π°ΠΌ, Π²ΠΏΠΎΠ»Π½Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π·Π½Π°ΠΊΠΎΠΌΡ‹, ΠΌΠΎΠΆΠ½ΠΎ отнСсти, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅:

О зависимостях ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ²

Когда ΠΏΠ°ΠΊΠ΅Ρ‚ слСдуСт Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½ΡƒΡŽ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡƒΡŽ для обСспСчСния Π΅Π³ΠΎ функционирования, Π° ΠΊΠΎΠ³Π΄Π° β€” ΠΊΠ°ΠΊ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ?

ΠŸΡ€ΠΈ установкС ΠΏΠ°ΠΊΠ΅Ρ‚Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π²ΠΈΠ΄Π° npm install

Зависимости Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ β€” это ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½ΡƒΠΆΠ½Ρ‹ Π² процСссС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Π² Ρ…ΠΎΠ΄Π΅ Π΅Π³ΠΎ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ функционирования ΠΎΠ½ΠΈ Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ. К Ρ‚Π°ΠΊΠΈΠΌ ΠΏΠ°ΠΊΠ΅Ρ‚Π°ΠΌ относятся, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ инструмСнты тСстирования, Webpack, Babel.

Π£Ρ‚ΠΈΠ»ΠΈΡ‚Π° npx

БСйчас ΠΌΡ‹ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎΠ± ΠΎΠ΄Π½ΠΎΠΉ вСсьма ΠΌΠΎΡ‰Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π΅, npx, которая появилась Π² npm 5.2. Одной ΠΈΠ· Π΅Ρ‘ возмоТностСй являСтся запуск исполняСмых Ρ„Π°ΠΉΠ»ΠΎΠ², входящих Π² состав npm-ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ². ΠœΡ‹ ΡƒΠΆΠ΅ рассматривали использованиС npx для запуска ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° ΠΈΠ· ΠΏΠ°ΠΊΠ΅Ρ‚Π° cowsay. Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎΠ± этом ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅.

β–Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ npx для упрощСния запуска Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄

Node.js-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π»ΠΈ мноТСство исполняСмых Ρ„Π°ΠΉΠ»ΠΎΠ² (ΡƒΡ‚ΠΈΠ»ΠΈΡ‚) Π² Π²ΠΈΠ΄Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π»ΠΎΡΡŒ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ глобально, Ρ‡Ρ‚ΠΎ обСспСчивало ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ доступ ΠΊ ΠΈΡ… возмоТностям, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΈΡ… ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ, просто ввСдя имя ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. Однако Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² Ρ‚Π°ΠΊΠΎΠΉ срСдС Π±Ρ‹Π»ΠΎ вСсьма Π½Π΅ΠΊΠΎΠΌΡ„ΠΎΡ€Ρ‚Π½ΠΎ Π² Ρ‚ΠΎΠΌ случаС, Ссли Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π»ΠΎΡΡŒ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Π΅ вСрсии ΠΎΠ΄Π½ΠΈΡ… ΠΈ Ρ‚Π΅Ρ… ΠΆΠ΅ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ².

▍ВыполнСниС ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ Π±Π΅Π· нСобходимости ΠΈΡ… установки

Π’ npx имССтся Π΅Ρ‰Ρ‘ ΠΎΠ΄Π½Π° ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΠ½Π΅ΠΉΡˆΠ°Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ, благодаря ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Π±Π΅Π· ΠΈΡ… ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ установки. ПолСзно это, Π² основном, ΠΏΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌ:

Если ΠΆΠ΅ ΠΏΠ°ΠΊΠ΅Ρ‚ cowsay Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ установлСн глобально, подобная ΠΊΠΎΠΌΠ°Π½Π΄Π° выдаст ΠΎΡˆΠΈΠ±ΠΊΡƒ.

Π£Ρ‚ΠΈΠ»ΠΈΡ‚Π° npx позволяСт Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π±Π΅Π· ΠΈΡ… установки. Выглядит это, Π² Ρ€Π°ΠΌΠΊΠ°Ρ… нашСго ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°, Ρ‚Π°ΠΊ:

Вакая ΠΊΠΎΠΌΠ°Π½Π΄Π° сработаСт, Π½ΠΎ, хотя «говорящая» ΠΊΠΎΡ€ΠΎΠ²Π°, ΠΏΠΎ Π±ΠΎΠ»ΡŒΡˆΠΎΠΌΡƒ счёту, особой ΠΏΠΎΠ»ΡŒΠ·Ρ‹ Π½Π΅ приносит, Ρ‚ΠΎΡ‚ ΠΆΠ΅ самый ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ для выполнСния ΠΊΡƒΠ΄Π° Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄. Π’ΠΎΡ‚ нСсколько ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ²:

▍Запуск JavaScript-ΠΊΠΎΠ΄Π° с использованиСм Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… вСрсий Node.js

Π­Ρ‚ΠΎ позволяСт ΠΎΡ‚ΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ использования инструмСнтов Π½Π°ΠΏΠΎΠ΄ΠΎΠ±ΠΈΠ΅ nvm ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ΠΎΠ² вСрсий Node.js.

▍Запуск ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹Ρ… Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΊΠΎΠ΄Π°, доступных ΠΏΠΎ Π½Π΅ΠΊΠΎΠ΅ΠΌΡƒ адрСсу

Npx позволяСт Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠΎΠ΄, ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π² npm. Π’ частности, Ссли Ρƒ вас Π΅ΡΡ‚ΡŒ ссылка Π½Π° Π½Π΅ΠΊΠΈΠΉ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ΠΊΠΎΠ΄Π° (скаТСм, ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π½Π° GitHub gist), Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Ρ‚Π°ΠΊ:

ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° нСльзя Π·Π°Π±Ρ‹Π²Π°Ρ‚ΡŒ ΠΎ бСзопасности. Npx Π΄Π°Ρ‘Ρ‚ Π² Ρ€ΡƒΠΊΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° большиС возмоТности, Π½ΠΎ ΠΎΠ½ΠΈ ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‚ ΠΈ Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ ΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²Π΅Π½Π½ΠΎΡΡ‚ΡŒ.

β–Π˜Ρ‚ΠΎΠ³ΠΈ

БСгодня ΠΌΡ‹ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΈ ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ°Ρ… npm ΠΈ ΠΎΠ± использовании npx. На Π΄Π°Π½Π½ΠΎΠΌ этапС Ρƒ вас Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠ»ΠΎΠΆΠΈΡ‚ΡŒΡΡ Π±Π°Π·ΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ устройства npm ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Ρ€Π°Π±ΠΎΡ‚Ρ‹ с этим ΠΏΠ°ΠΊΠ΅Ρ‚Π½Ρ‹ΠΌ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ΠΎΠΌ. Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π±ΠΎΠ»Π΅Π΅ Π³Π»ΡƒΠ±ΠΎΠΊΠΎ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ npm β€” ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ΡΡŒ ΠΊ страницС Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈ побольшС экспСримСнтируйтС.

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ€Π°Π· ΠΌΡ‹ обсудим Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Π°Π·ΠΎΠ²Ρ‹Π΅ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ Node.js, ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ для ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ для этой ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹.

Π£Π²Π°ΠΆΠ°Π΅ΠΌΡ‹Π΅ Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»ΠΈ! ΠŸΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ΡΡŒ Π»ΠΈ Π²Ρ‹ npx?

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Node.js. Π£Ρ‚ΠΈΠ»ΠΈΡ‚Ρ‹ npm ΠΈ npx

Π£Ρ‚ΠΈΠ»ΠΈΡ‚Π° npm

Π£Ρ‚ΠΈΠ»ΠΈΡ‚Π° npm β€” это ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ…ΠΎΠ΄ΠΈΡ‚ Π² состав Node.js. ΠŸΠ°ΠΊΠ΅Ρ‚ΠΎΠΌ называСтся ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ нСсколько js-Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… собой ΠΊΠ°ΠΊΡƒΡŽ-Ρ‚ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ ΠΈΠ»ΠΈ инструмСнт. ΠœΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для скачивания ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² ΠΈΠ· ΠΎΠ±Π»Π°Ρ‡Π½ΠΎΠ³ΠΎ сСрвСра, Π»ΠΈΠ±ΠΎ для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ (ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ) ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² Π½Π° этот сСрвСр.

1. Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

Для создания Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π² Π½Π΅Π΅ ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ

2. Π€Π°ΠΉΠ» package-lock.json

3. УстановлСнныС ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹

ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ список всСх установлСнных Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° npm-ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹

ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ список всСх установлСнных глобально npm-ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² (см.Π½ΠΈΠΆΠ΅) ΠΌΠΎΠΆΠ½ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹

4. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π°Ρ информация ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚Π΅

ΠŸΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚Π΅, доступного Ρ‡Π΅Ρ€Π΅Π· npm-Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ

ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΈΠ· npm-рСпозитория ΠΎ послСднСй доступной вСрсии ΠΏΠ°ΠΊΠ΅Ρ‚Π°

5. Π›ΠΎΠΊΠ°Π»ΡŒΠ½Π°Ρ установка ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ²

Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ всС ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ ΠΈΠ· сСкций dependencies ΠΈ devDependencies Ρ„Π°ΠΉΠ»Π° package.json :

Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ всС ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ ΠΈΠ· сСкции dependencies Ρ„Π°ΠΉΠ»Π° package.json (для production сСрвСра)

Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚ package-name ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² ΡΠ΅ΠΊΡ†ΠΈΡŽ devDependencies Ρ„Π°ΠΉΠ»Π° package.json :

Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚ package-name ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² ΡΠ΅ΠΊΡ†ΠΈΡŽ dependencies Ρ„Π°ΠΉΠ»Π° package.json :

6. Π›ΠΎΠΊΠ°Π»ΡŒΠ½ΠΎΠ΅ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ²

Π£Π΄Π°Π»ΠΈΡ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚ package-name ΠΈ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Π΅Π³ΠΎ ΠΈΠ· сСкции devDependencies Ρ„Π°ΠΉΠ»Π° package.json :

Π£Π΄Π°Π»ΠΈΡ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚ package-name ΠΈ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Π΅Π³ΠΎ ΠΈΠ· сСкции dependencies Ρ„Π°ΠΉΠ»Π° package.json :

7. Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½Π°Ρ установка ΠΏΠ°ΠΊΠ΅Ρ‚Π°

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ npm Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ всС ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ Π² локальной Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΡ‹ сСйчас Ρ€Π°Π±ΠΎΡ‚Π°Π΅ΠΌ (дирСктория ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°). Если Π½ΡƒΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ°ΠΊΠ΅Ρ‚ Π±Ρ‹Π» доступСн всСм прилоТСниям, Π΅Π³ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ глобально. Но это Π½Π΅ Π»ΡƒΡ‡ΡˆΠ΅Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ β€” Ρ€Π°Π·Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Π΅ вСрсии ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚Π°. Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½ΠΎ установлСнный ΠΏΠ°ΠΊΠ΅Ρ‚ Π±ΡƒΠ΄Π΅Ρ‚ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ ΠΈ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΎΡˆΠΈΠ±ΠΊΡƒ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ.

8. Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½ΠΎΠ΅ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΊΠ΅Ρ‚Π°

Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ Ссли ΠΈΠ·-Π·Π° глобально установки ΠΏΠ°ΠΊΠ΅Ρ‚Π° Π²ΠΎΠ·Π½ΠΈΠΊΠ»ΠΈ трудности β€” ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Π΅Π³ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹

9. Π›ΠΎΠΊΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ²

ΠžΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ΠΏΠ°ΠΊΠ΅Ρ‚ ΠΈΠ»ΠΈ всС ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° (Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΈΠ· Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°):

Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ, Π²Ρ‹ΡˆΠ»ΠΈ Π»ΠΈ Π½ΠΎΠ²Ρ‹Π΅ вСрсии ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ²

10. Как бСзопасно ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒΡΡ

Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒΡΡ Π΄ΠΎ Π½ΠΎΠ²Ρ‹Ρ… ΠΌΠ°ΠΆΠΎΡ€Π½Ρ‹Ρ… вСрсий всСх ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², Π½ΡƒΠΆΠ½ΠΎ глобально ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ (Π±Π΅Π· внСсСния ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ):

npm история вСрсий ΠΏΠ°ΠΊΠ΅Ρ‚Π°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ npm история вСрсий ΠΏΠ°ΠΊΠ΅Ρ‚Π°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ npm история вСрсий ΠΏΠ°ΠΊΠ΅Ρ‚Π°. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ npm история вСрсий ΠΏΠ°ΠΊΠ΅Ρ‚Π°. Π€ΠΎΡ‚ΠΎ npm история вСрсий ΠΏΠ°ΠΊΠ΅Ρ‚Π°

УбСдившись, Ρ‡Ρ‚ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ достаточно бСзопасно, ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

11. Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ²

ΠžΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ΠΏΠ°ΠΊΠ΅Ρ‚ ΠΈΠ»ΠΈ всС ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹, установлСнныС глобально (ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΈΠ· любого мСста):

12. Установка ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ вСрсии

Установка старой вСрсии npm-ΠΏΠ°ΠΊΠ΅Ρ‚Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ совмСстимости:

Π£Π·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ вСрсии Π½Π΅ΠΊΠΎΠ΅Π³ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚Π° ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ Π² npm-Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ

13. Запуск скриптов

Π—Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ эти ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹

14. Π‘ΠΏΡ€Π°Π²ΠΊΠ° ΠΏΠΎ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Ρƒ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ²

Π£ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² Π΅ΡΡ‚ΡŒ подробная справка ΠΏΠΎ всС ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ

Для ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°, посмотрим справку ΠΏΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ install (Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅)

Π£Ρ‚ΠΈΠ»ΠΈΡ‚Π° npx

БущСствуСт мноТСство ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ Π² Π²ΠΈΠ΄Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, create-react-app ), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π»ΠΎΡΡŒ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ глобально. Π—Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΈΡ… ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки Π±Ρ‹Π»ΠΎ ΠΎΡ‡Π΅Π½ΡŒ просто β€” достаточно ввСсти имя ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ Π² консоли. Однако ΠΌΡ‹ ΡƒΠΆΠ΅ Π·Π½Π°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ глобальная установка ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² создаСт мноТСство ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ.

ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Ρ‡Ρ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ с глобальной установкой Ρ‚Π°ΠΊΠΈΡ… ΡƒΡ‚ΠΈΠ»ΠΈΡ‚. НапримСр, ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚ create-react-app глобально, Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· ΠΈΠ· Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ React-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ β€” ΠΈ сразу послС этого ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ.

Если ΠΏΠ°ΠΊΠ΅Ρ‚ cowsay Π½Π΅ установлСн глобально, подобная ΠΊΠΎΠΌΠ°Π½Π΄Π° выдаст ΠΎΡˆΠΈΠ±ΠΊΡƒ:

Π£Ρ‚ΠΈΠ»ΠΈΡ‚Π° npx скачаСт ΠΏΠ°ΠΊΠ΅Ρ‚ cowsay ΠΈΠ· npm-рСпозитория, установит Π²ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρƒ. Π§Ρ‚ΠΎ Π²Π°ΠΆΠ½ΠΎ β€” Π½Π΅ загрязняя глобальноС пространство. Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ использовании npx нСобходимости Π² глобальной установкС ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² большС Π½Π΅Ρ‚.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ΠŸΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ

doctor Brain

ΠΌΠΈΡ€ Π³Π»Π°Π·Π°ΠΌΠΈ Π²Π΅Π±-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°

Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ вСрсиями npm

обновляСм npm-ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹, Π½Π΅ опасаясь ΠΈΡΠΏΠΎΡ€Ρ‚ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

врСмя чтСния 4 ΠΌΠΈΠ½.

npm история вСрсий ΠΏΠ°ΠΊΠ΅Ρ‚Π°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ npm история вСрсий ΠΏΠ°ΠΊΠ΅Ρ‚Π°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ npm история вСрсий ΠΏΠ°ΠΊΠ΅Ρ‚Π°. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ npm история вСрсий ΠΏΠ°ΠΊΠ΅Ρ‚Π°. Π€ΠΎΡ‚ΠΎ npm история вСрсий ΠΏΠ°ΠΊΠ΅Ρ‚Π°

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ порядка вСрсионирования npm-ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², являСтся частым ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚ΠΎΠΌ обсуТдСния ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠΈ собСсСдований.

БСмантичСскоС ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ вСрсиями npm-ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² ΠΎΠ±ΡŠΡΡΠ½ΡΠ΅Ρ‚, ΠΊΠ°ΠΊ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ зависимостями устанавливаСмых npm-ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ².

Π˜Ρ‚Π°ΠΊ, обратимся ΠΊ основам.

ΠŸΡ€ΠΈΡΡ‚ΡƒΠΏΠ°Ρ ΠΊ созданию Π½ΠΎΠ²ΠΎΠ³ΠΎ Nodejs ΠΈΠ»ΠΈ React ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, ΠΌΡ‹ запускаСм:

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΌΡ‹ создаСм Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ Ρ„Π°ΠΉΠ» package.json, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π² дальнСйшСм управляСм зависимостями ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ².

ΠžΠ±Ρ‹Ρ‡Π½ΠΎ Ρ„Π°ΠΉΠ» package.json выглядит ΠΊΠ°ΠΊ-Ρ‚ΠΎ Ρ‚Π°ΠΊ:

Π’ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ package.json содСрТит свойство version, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Ρ€Π°Π²Π½ΠΎ 1.0.0 для Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ ΠΏΠ°ΠΊΠ΅Ρ‚Π° express с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:

Как Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚, Π² Ρ„Π°ΠΉΠ»Π΅ package.json Π±ΡƒΠ΄Π΅Ρ‚ создан Ρ€Π°Π·Π΄Π΅Π» зависимостСй:

Π’Π°ΠΊ ΠΆΠ΅, ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ появлСниС Ρ„Π°ΠΉΠ»Π° package-lock.json, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΠΌΠ΅Π΅Ρ‚ большоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈ содСрТит Ρ‚ΠΎΡ‡Π½Ρ‹ΠΉ Π½ΠΎΠΌΠ΅Ρ€ вСрсии ΠΈ URL-адрСс дистрибутива основного ΠΏΠ°ΠΊΠ΅Ρ‚Π°, Π° Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ зависимых ΠΏΠ°ΠΊΠ΅Ρ‚Π°Ρ….

Π€Π°ΠΉΠ» package-lock.json Π½ΠΈ ΠΏΡ€ΠΈ ΠΊΠ°ΠΊΠΈΡ… условиях нСльзя ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ ΠΈΠ»ΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, ΠΎΠ½ обновляСтся автоматичСски ΠΏΡ€ΠΈ установкС ΠΈΠ»ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ².

БСмантичСскоС вСрсионированиС

НавСрноС Π’Ρ‹ ΡƒΠΆΠ΅ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΠ»ΠΈ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ dependencies Π² Ρ„Π°ΠΉΠ»Π΅ package.json являСтся ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ, содСрТащим ΠΏΠ°Ρ€Ρ‹ ΠΊΠ»ΡŽΡ‡-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

Боздавая собствСнный npm-ΠΏΠ°ΠΊΠ΅Ρ‚, Π’Ρ‹ Ρ‚Π°ΠΊ ΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌ опрСдСлСния Π΅Π³ΠΎ вСрсии.

Внося Π² ΠΏΠ°ΠΊΠ΅Ρ‚ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ измСнСния, ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°ΠΉΡ‚Π΅ ΠΏΠ΅Ρ€Π²ΡƒΡŽ Ρ†ΠΈΡ„Ρ€Ρƒ вСрсии ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ. Внося Π½Π΅Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ измСнСния, ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°ΠΉΡ‚Π΅ Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ Π²Ρ‚ΠΎΡ€ΡƒΡŽ Ρ†ΠΈΡ„Ρ€Ρƒ вСрсии ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. Если Π’Ρ‹ вноситС Ρ‚ΠΎΠ»ΡŒΠΊΠΎ исправлСния (ΠΏΠ°Ρ‚Ρ‡ΠΈ), ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°ΠΉΡ‚Π΅ Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ Ρ‚Ρ€Π΅Ρ‚ΡŒΡŽ Ρ†ΠΈΡ„Ρ€Ρƒ вСрсии.

ΠŸΡ€ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ вСрсии npm-ΠΏΠ°ΠΊΠ΅Ρ‚Π° часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π΄Π²Π° символа. ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ, для Ρ‡Π΅Π³ΠΎ ΠΎΠ½ΠΈ Π½ΡƒΠΆΠ½Ρ‹:

ΠšΠ°Ρ€Π΅Ρ‚ΠΊΠ° (Λ†)

Λ† : этот символ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², упомянутых Π² package.json, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ npm update, обновятся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠ°Ρ‚Ρ‡ΠΈ ΠΈ ΠΌΠΈΠ½ΠΎΡ€Π½Ρ‹Π΅ измСнСния. Π’Π°ΠΊ, Ссли для Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ вСрсии установлСнного ΠΏΠ°ΠΊΠ΅Ρ‚Π° 3.16.1 Π²Ρ‹ΠΉΠ΄Π΅Ρ‚ Π½ΠΎΠ²Ρ‹ΠΉ ΠΌΠΈΠ½ΠΎΡ€Π½Ρ‹ΠΉ Ρ€Π΅Π»ΠΈΠ·, ΠΎΠ½ обновится Π΄ΠΎ вСрсии 3.17.1, Π° Ссли Π²Ρ‹ΠΉΠ΄Π΅Ρ‚ ΠΏΠ°Ρ‚Ρ‡, ΠΏΠ°ΠΊΠ΅Ρ‚ обновится Π΄ΠΎ послСднСй доступной вСрсии, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, 3.16.3.

Если, Π’Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ обновлялась ΠΈ маТорная вСрсия, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ синтаксис:

Если Π½ΡƒΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ послСднюю Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ ΠΏΠ°ΠΊΠ΅Ρ‚Π°, запуститС ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

Вильда (˜)

ВсСгда, ΠΌΠΎΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ вСрсии, прСдоставляСмыС npm-ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠΌ (Π² Π΄Π°Π½Π½ΠΎΠΌ случаС Ρ€Π΅Ρ‡ΡŒ ΠΈΠ΄Π΅Ρ‚ ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚Π΅ express).

npm история вСрсий ΠΏΠ°ΠΊΠ΅Ρ‚Π°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ npm история вСрсий ΠΏΠ°ΠΊΠ΅Ρ‚Π°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ npm история вСрсий ΠΏΠ°ΠΊΠ΅Ρ‚Π°. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ npm история вСрсий ΠΏΠ°ΠΊΠ΅Ρ‚Π°. Π€ΠΎΡ‚ΠΎ npm история вСрсий ΠΏΠ°ΠΊΠ΅Ρ‚Π°

НаТав Π½Π° ссылку с ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ количСства вСрсий ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Π’Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Π΅Ρ‚Π΅ ΠΊ Π΄Π»ΠΈΠ½Π½ΠΎΠΌΡƒ списку доступных вСрсий.

npm история вСрсий ΠΏΠ°ΠΊΠ΅Ρ‚Π°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ npm история вСрсий ΠΏΠ°ΠΊΠ΅Ρ‚Π°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ npm история вСрсий ΠΏΠ°ΠΊΠ΅Ρ‚Π°. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ npm история вСрсий ΠΏΠ°ΠΊΠ΅Ρ‚Π°. Π€ΠΎΡ‚ΠΎ npm история вСрсий ΠΏΠ°ΠΊΠ΅Ρ‚Π°

НСкоторыС ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΠ·Π½Π°Ρ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠ΅ ΠΈ послСдниС вСрсии всСх ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² ΠΈΠ· package.json, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ npm outdated

npm история вСрсий ΠΏΠ°ΠΊΠ΅Ρ‚Π°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ npm история вСрсий ΠΏΠ°ΠΊΠ΅Ρ‚Π°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ npm история вСрсий ΠΏΠ°ΠΊΠ΅Ρ‚Π°. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ npm история вСрсий ΠΏΠ°ΠΊΠ΅Ρ‚Π°. Π€ΠΎΡ‚ΠΎ npm история вСрсий ΠΏΠ°ΠΊΠ΅Ρ‚Π°

npm история вСрсий ΠΏΠ°ΠΊΠ΅Ρ‚Π°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ npm история вСрсий ΠΏΠ°ΠΊΠ΅Ρ‚Π°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ npm история вСрсий ΠΏΠ°ΠΊΠ΅Ρ‚Π°. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ npm история вСрсий ΠΏΠ°ΠΊΠ΅Ρ‚Π°. Π€ΠΎΡ‚ΠΎ npm история вСрсий ΠΏΠ°ΠΊΠ΅Ρ‚Π°

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ всСх уязвимых ΠΏΠ°ΠΊΠ΅Ρ‚Π°Ρ… Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ ΠΈ инструкции ΠΏΠΎ ΡƒΡΡ‚Ρ€Π°Π½Π΅Π½ΠΈΡŽ выявлСнных уязвимостСй, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ npm audit. Если Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ Π½Π° Mac’С, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, потрСбуСтся ΠΏΠΎΠ²Ρ‹ΡΠΈΡ‚ΡŒ ΠΏΡ€Π°Π²Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ sudo npm audit.

Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ‚ список всСх уязвимых ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², со ссылками Π½Π° ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ с описаниСм уязвимостСй, ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒΡŽ ΡƒΠ³Ρ€ΠΎΠ·Ρ‹ (low, medium, high) ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ, для устранСния ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ.

Для обСчпСния бСзопасности своих ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², Π’Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ npm audit ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ Π΄Π²Π° Ρ€Π°Π·Π° Π² мСсяц ΠΈ ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΌ рСкомСндациям.

Бпасибо за вниманиС.

По ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π°ΠΌ ΡΡ‚Π°Ρ‚ΡŒΠΈ Yogesh Chavan β€œSemantic versioning in npm”.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *