030 ΠžΠ±Π·ΠΎΡ€ NPM

Π‘Π°ΠΌΡ‹Π΅ популярныС ΠΏΠ°ΠΊΠ΅Ρ‚Π½Ρ‹Π΅ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Ρ‹:

  • npm - самый популярный, простой ΠΈ понятный ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€
  • yarn - Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹ΠΉ facebook ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ устанавливаСтся пСрвая вСрсия, которая Π½Π΅ развиваСтся, Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅ имССтся ΠΈ Ρ‚Ρ€Π΅Ρ‚ΡŒΡ вСрсия
  • pnpm - Ρ…Ρ€Π°Π½ΠΈΡ‚ всС скачанныС ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ мСстС, Π½ΠΎ ΠΈΠΌΠ΅Π΅Ρ‚ минус Π² Π±ΠΎΠ»Π΅Π΅ тяТёлой настройкС
  • boar

Если Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎ NPM, Ρ‚ΠΎ ΠΌΡ‹ ΠΈΠΌΠ΅Π΅ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ наши ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ Π² Π½Π΅Π³ΠΎ ΠΈ ΡΠΊΠ°Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ для использования Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… прилоТСниях. Π’Π°ΠΊ ΠΆΠ΅ имССтся ΠΈ ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ.

Π’Π°ΠΊ ΠΆΠ΅ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ создаёт ΠΏΠ°ΠΏΠΊΡƒ с Ρ‡Π°ΡΡ‚ΠΎΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΌΠΈ зависимостями, Ρ‡Ρ‚ΠΎΠ±Ρ‹ быстро ΠΈΡ… Π·Π°ΠΊΠΈΠ΄Ρ‹Π²Π°Ρ‚ΡŒ Π² наш ΠΏΡ€ΠΎΠ΅ΠΊΡ‚

Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° позволяСт быстро ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ npm

npm i -g npm

031 Авторизация ΠΈ ΠΏΡ€ΠΎΡ„ΠΈΠ»ΡŒ

Π”Π°Π»Π΅Π΅ Ρƒ нас ΠΈΠ΄ΡƒΡ‚ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ рСдактирования ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ нашСго профиля

// даст Π²ΠΎΠΉΡ‚ΠΈ Π² npm
npm login
 
// ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ‚, ΠΏΠΎΠ΄ ΠΊΠ°ΠΊΠΈΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ сСйчас находимся
npm whoami
 
// устанавливаСм Π² нашС ΠΎΠΊΠ½ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎΠ± Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚Π΅ значСния
npm profile set fullname "Lvov Valery"
 
//ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎΠ± Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚Π΅
npm profile get
 
// Π²Ρ‹ΠΉΡ‚ΠΈ ΠΈΠ· Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚Π° npm
npm logout

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π·Π°Π»ΠΎΠ³ΠΈΠ½ΠΈΡ‚ΡŒΡΡ Π² наш ΠΏΡ€ΠΎΡ„ΠΈΠ»ΡŒ

А Ρ‚ΡƒΡ‚ ΠΏΠΎΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΈ вывСсти Π΅Ρ‘

032 Π Π°Π·Π±ΠΎΡ€ package.json

ΠŸΠ΅Ρ€Π²Ρ‹ΠΌ Π΄Π΅Π»ΠΎΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚ Π² git ΠΈ npm

// Π΄Π°Π»Π΅Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π΅Π³ΠΎ Π² Π³ΠΈΡ‚
git init
git add .
git commit -m "first commit"
git branch -M main
git remote add origin <ссылка_Π½Π°_Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ>
git push -u origin main
 
// ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌ наш ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ с пэкСдТСм
npm init

И Π²ΠΎ врСмя ΠΈΠ½Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ npm Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ настраиваСм пэкэдТСр

package name: (my) weather-cli <имя ΠΏΠ°ΠΊΠ΅Ρ‚Π°>
version: (1.0.0) <вСрсия нашСго ΠΏΠ°ΠΊΠ΅Ρ‚Π°: ΠΌΠ°ΠΆΠΎΡ€.ΠΌΠΈΠ½ΠΎΡ€.фикс-[aplha|beta]>
description: CLI for getting weather <ΠΎ Ρ‡Ρ‘ΠΌ этот ΠΏΠ°ΠΊΠ΅Ρ‚>
entry point: (index.js) <входная Ρ‚ΠΎΡ‡ΠΊΠ° Π² ΠΏΠ°ΠΊΠ΅Ρ‚>
test command:
git repository: <вставляСм ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΉΡΡ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ>
keywords: cli, weather, <ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ слова ΠΏΠΎ Π½Π°ΡˆΠ΅ΠΌΡƒ ΠΏΠ°ΠΊΠ΅Ρ‚Ρƒ>
author: Lvov Valery <имя Π°Π²Ρ‚ΠΎΡ€Π°>
license: (ISC) MIT <Π²ΠΈΠ΄ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠΈ>

И Π΄Π°Π»Π΅Π΅ ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Ρ‚Π°ΠΊΠΎΠΉ Ρ„Π°ΠΉΠ»ΠΈΠΊ с нашими ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ значСниями:

package.json

{
  "name": "weather-cli",
  "version": "1.0.0-alpha",
  "description": "CLI for getting weather",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [
    "cli",
    "weather"
  ],
  "author": "Lvov Valery",
  "license": "MIT"
}
 
  • name - Π‘Π°ΠΌΠΎ имя нашСго ΠΏΠ°ΠΊΠ΅Ρ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ Ρƒ Π½Π΅Π³ΠΎ ΠΏΡ€ΠΈ скачивании ΠΈ установлСнии зависимостСй
  • verison - Ρ…Ρ€Π°Π½ΠΈΡ‚ Π² сСбС Π²Π΅Ρ€ΡΠΈΡŽ нашСго ΠΏΠ°ΠΊΠ΅Ρ‚Π°:
    • ΠœΠ°ΠΆΠΎΡ€Π½Π°Ρ вСрсия ΠΏΡ€ΠΎΠ΅Ρ‚Π° - это breaking changes, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎ ΠΌΠ΅Π½ΡΡŽΡ‚ наш ΠΏΠ°ΠΊΠ΅Ρ‚ ΠΈ вСсь старый ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ»Π΅Ρ‚Π΅Ρ‚ΡŒ.
    • ΠœΠΈΠ½ΠΎΡ€Π½Ρ‹Π΅ измСнСния - это имплСмСнтация Π½ΠΎΠ²Ρ‹Ρ… Ρ„ΠΈΡ‡, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠΏΠΎΠ»Π½ΡΡŽΡ‚ ΠΌΠ°ΠΆΠΎΡ€Π½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ.
    • И Ρ‚Ρ€Π΅Ρ‚ΡŒΡ Ρ†ΠΈΡ„Ρ€Π° - это ΠΌΠ΅Π»ΠΊΠΈΠ΅ фиксы старых Π±Π°Π³ΠΎΠ².
  • description - ΠšΡ€Π°Ρ‚Π½ΠΎΠ΅ описаниС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°
  • scripts - Ρ…Ρ€Π°Π½ΠΈΡ‚ Π² сСбС ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ быстро Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ
  • homepage - Ρ‚ΡƒΡ‚ хранится ссылка Π½Π° ваш сайт с этим ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠΌ
  • repository - Ρ‚ΡƒΡ‚ хранится Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ ΠΏΠ°ΠΊΠ΅Ρ‚Π°
  • bugs - сюда ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ для Π±Π°Π³-Ρ€Π΅ΠΏΠΎΡ€Ρ‚ΠΎΠ²
  • private - Ρ‚ΡƒΡ‚ опрСдСляСтся ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½Ρ‹ΠΉ ΠΏΠ°ΠΊΠ΅Ρ‚ ΠΈΠ»ΠΈ Π½Π΅Ρ‚
  • main - это Ρ‚ΠΎΡ‡ΠΊΠ° Π²Ρ…ΠΎΠ΄Π° Π² ΠΏΠ°ΠΊΠ΅Ρ‚, ΠΈ Ссли ΠΎΠ½Π° Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠΊΠ°Π·Π°Π½Π° Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ, Ρ‚ΠΎ Π²ΠΎΠΉΡ‚ΠΈ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ получится
  • browser - Ρ‚ΠΎ ΠΆΠ΅ самоС, Ρ‡Ρ‚ΠΎ ΠΈ main, Π½ΠΎ Ссли ΠΌΡ‹ ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ΅ΠΌ Ρ„Ρ€ΠΎΠ½Ρ‚-эндовский ΠΏΠ°ΠΊΠ΅Ρ‚
  • bin - это Ρ‚ΠΎΡ‡ΠΊΠ° Π²Ρ…ΠΎΠ΄Π° Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Ссли ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΊΠ°ΠΊ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, CLI)
  • os - ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ ограничСния ΠΏΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹ΠΌ систСмам. НапримСр ["win32"] - поддСрТиваСтся всё, ΠΊΡ€ΠΎΠΌΠ΅ 32-ΡƒΡ… разрядных Windows
  • cpu - ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ процСссоры ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌ ΠΈΠ»ΠΈ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌ (Ρ‚Π°ΠΊ ΠΆΠ΅: "cpu": ["!arm"])
  • man - Ρ…Ρ€Π°Π½ΠΈΡ‚ Π² сСбС ΠΏΡƒΡ‚ΡŒ Π΄ΠΎ ΠΌΠ°Π½ΡƒΠ°Π»Π° ΠΏΠΎ Π΄Π°Π½Π½ΠΎΠΌΡƒ ΠΏΠ°ΠΊΠ΅Ρ‚Ρƒ (["./README.md"])
  • engines - Ρ‚ΡƒΡ‚ ΡƒΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ вСрсии Π½ΠΎΠ΄Ρ‹ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ Π΄Π°Π½Π½Ρ‹ΠΌ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠΌ
  • funding - Ρ‚ΡƒΡ‚ указываСтся ссылка Π½Π° сайт, Π³Π΄Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°
  • files - позволяСт ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ Ρ„Π°ΠΉΠ»Ρ‹ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π·Π°Π»ΠΈΠ²Π°Ρ‚ΡŒ с нашим ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠΌ, Π° ΠΊΠ°ΠΊΠΈΠ΅ Π½Π΅Ρ‚ (стоит вмСсто этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π³ΠΈΡ‚ΠΈΠ³Π½ΠΎΡ€ ΠΈ Π½ΠΏΠΌΠΈΠ³Π½ΠΎΡ€)

Π’Π°ΠΊ выглядит Π·Π°Π±ΠΈΡ‚Ρ‹ΠΉ json Π½Π°ΡˆΠΈΡ… настроСк

package.json

{
  "name": "weather-cli",
  "version": "1.0.0-alpha",
  "private": false,
  "description": "CLI for getting weather",
  "main": "index.js",
  "bin": "./index.js",
  "os": ["!win32"],
  "cpu": ["!arm"],
  "man": ["./README.md"],
  "engines": {
    "node": ">14"
  },
  "files": ["./src/**/*.js"],
  "funding": [],
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [
    "cli",
    "weather"
  ],
  "author": "Lvov Valery",
  "license": "MIT",
  "homepage": "http://www.weather",
  "repository": {
    "type": "git",
    "url": "https://github.com/ZeiZel/npm-weather-cli"
  },
  "bugs": {
    "url": "https://github.com/",
    "email": "valera2003lvov@yandex.ru"
  }
}

Π’ΡƒΡ‚ Π±ΡƒΠ΄ΡƒΡ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ Ρ‚Π΅ Π΄Π°Π½Π½Ρ‹Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ Π½Π΅ Ρ…ΠΎΡ‚ΠΈΠΌ Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ Π² Π³ΠΈΡ‚

.gitignore

/dist
/node_modules

Π’ΡƒΡ‚ Π±ΡƒΠ΄ΡƒΡ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ Ρ„Π°ΠΉΠ»Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ Π½Π΅ Ρ…ΠΎΡ‚ΠΈΠΌ Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ Π½Π° сайт npm

.npmignore

/.vscode
/.idea

033 Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ зависимостями

package-lock.json Ρ…Ρ€Π°Π½ΠΈΡ‚ Π² сСбС Π·Π°Π»ΠΎΡ‡Π΅Π½Π½Ρ‹Π΅ вСрсии Π½Π°ΡˆΠΈΡ… зависимостСй. Если Π½Π°ΠΌ Π²Π°ΠΆΠ½ΠΎ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ ΠΈΡ…, Ρ‚ΠΎ стоит ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ этот Ρ„Π°ΠΉΠ» Π½Π° Π³ΠΈΡ‚Ρ…Π°Π±.

Π‘Π°Π·ΠΎΠ²Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ:

// установит Π½ΡƒΠΆΠ½Ρ‹ΠΉ Π½Π°ΠΌ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ
npm install <ΠΌΠΎΠ΄ΡƒΠ»ΡŒ>
 
// ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°ΠΉΡ‚ΠΈ Π² консоли ΠΌΠΎΠ΄ΡƒΠ»ΡŒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°ΠΌ ΠΏΠΎΠΌΠΎΡ‡ΡŒ
npm search <ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅_слово>
 
// установит всС зависимости ΠΈΠ· package.json, Ссли Ρ‚Π°ΠΊΠΎΠ²Ρ‹Π΅ ΡƒΠΆΠ΅ Π·Π°Ρ€Π°Π½Π΅Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ
npm i
 
// провСряСт наши ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Π½Π° ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ нСбСзопасныС связи
npm audit
 
// исправит ошибки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π°ΡƒΠ΄ΠΈΡ‚ смоТСт ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ
npm audit fix --force
 
// ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ пСрСустанавливаСт ΠΏΠ°ΠΏΠΊΡƒ Π½ΠΎΠ΄ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ, учитывая package-lock
npm ci
 
// ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ‚ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ, Π°Π²Ρ‚ΠΎΡ€ΠΎΠ² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ
npm fund
 
// ! Π΄Π²Π΅ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, Ссли Π±ΡƒΠ΄ΡƒΡ‚ ошибки связСй
// ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π²Π΅Ρ€ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ связи Π½Π°ΡˆΠΈΡ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ
npm cache verify
// ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ кэш ΠΈ Π·Π°Π½ΠΎΠ²ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ зависимости с ошибками
npm cache clear

И здСсь ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½Ρ‹ наши зависимости ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ: Π’ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΌΡ‹ Π±ΡƒΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ dependencies (для Ρ€Π°Π±ΠΎΡ‚Ρ‹ прилоТСния), devDependencies (для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ прилоТСния) ΠΈ peerDependencies (для написания своих ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² ΠΊ модулям)

// это зависимости для Ρ€Π°Π±ΠΎΡ‚Ρ‹ самого прилоТСния
"dependencies": {}
 
// это зависимости для Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π°ΡˆΠΈΡ… инструмСнтов Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ (gulp, webpack, typescript)
"devDependencies": {}
 
// позволяСт ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΠ°ΠΊΠ΅Ρ‚Π° Π½ΡƒΠΆΠ½Ρ‹ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ зависимости / Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ позволяСт эффСктивно ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρƒ нашСго ΠΏΠ°ΠΊΠ΅Ρ‚Π° Π΅ΡΡ‚ΡŒ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ зависимости (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΌΡ‹ пишСм свой ΠΏΠ»Π°Π³ΠΈΠ½ для nestjs ΠΈ Π±Π΅Π· Π½Π΅Π³ΠΎ нСльзя Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒΡΡ нСсту ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ)
"peerDependencies": {}
 
// это ΠΌΠ΅Ρ‚Π°-информация для peerDependencies, которая позволяСт ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ настройки (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ„Π΅ΠΉΠ»ΠΈΡ‚ΡŒΡΡ Π»ΠΈ Π½Π°ΡˆΠ΅ΠΌΡƒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ ΠΏΡ€ΠΈ отсутствии модуля)
"peerDependenciesMeta": {}
 
// ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ зависимости - Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅
"optionalDependencies": {}

Π’Π°ΠΊ выглядит Ρ€Π°Π±ΠΎΡ‚Π° с Π½ΡƒΠΆΠ½Ρ‹ΠΌΠΈ для нас модулями:

// установка ΠΏΠ°ΠΊΠ΅Ρ‚Π° с зависимостями для Ρ€Π°Π½Ρ‚Π°ΠΉΠΌΠ°
npm i axios chalk dedent-js
 
// установка ΠΏΠ°ΠΊΠ΅Ρ‚Π° с зависимостями для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ
npm i -D gulp
 
// удаляСт ΠΏΠ°ΠΊΠ΅Ρ‚ ΠΈΠ· ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈ всС Π΅Π³ΠΎ зависимости
npm uni gulp
 
// установка ΠΏΠ°ΠΊΠ΅Ρ‚Π° Π² глобальноС пространство (Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΎΡ‚ΠΎΠ²ΡΡŽΠ΄Ρƒ)
npm i -g gulp

Π’ΡƒΡ‚ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, какая вСрсия модуля Π½Π°ΠΌ Π½ΡƒΠΆΠ½Π° Π±ΡƒΠ΄Π΅Ρ‚ Π² дальнСйшСм

{
	"axios": "^1.2.0", // Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ΄Π½ΠΈΠΌΠ°Ρ‚ΡŒ всС вСрсии, ΠΊΡ€ΠΎΠΌΠ΅ ΠΌΠ°ΠΆΠΎΡ€Π½Ρ‹Ρ…
	"axios": "~1.2.0", // Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ΄Π½ΠΈΠΌΠ°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ вСрсии фиксов
	"axios": "1.2.0" // Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ΄Π½ΠΈΠΌΠ°Ρ‚ΡŒ Π²Π΅Ρ€ΡΠΈΡŽ совсСм
}

И Ρ‚Π°ΠΊ ΠΆΠ΅ Ρƒ Π½Π°ΡˆΠΈΡ… установлСнных ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ Π΅ΡΡ‚ΡŒ свои зависимости, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚Π°ΠΊ ΠΆΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π°ΠΌ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‚ΡΡ. Π’ΡƒΡ‚ Π½ΡƒΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π½Π° ΠΊΠ°ΠΆΠ΄ΡƒΡŽ свою Π·Π°Π΄Π°Ρ‡Ρƒ ΠΈΡΠΊΠ°Ρ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ сильно разрастутся ΠΈ Π½Π°ΠΌ слоТно Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ с ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒΡŽ ΠΈΠ»ΠΈ вирусом, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΡ‚ Π½Π΅Π³ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎ Π·Π°Π²ΠΈΡΠ΅Ρ‚ΡŒ

Папка .bin Ρ…Ρ€Π°Π½ΠΈΡ‚ Π² сСбС Π±ΠΈΠ½Π°Ρ€Π½ΠΈΠΊΠΈ Π²Ρ‹Π·ΠΎΠ²Π° самой ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹

Π­Ρ‚ΠΎΡ‚ Π±ΠΈΠ½Π°Ρ€Π½ΠΈΠΊ вызываСтся, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ упомянаСм наш ΠΏΠ»Π°Π³ΠΈΠ½ Π² скриптаΡ