TGViewer
Антон Непша.js Антон Непша.js @nepshajs · 2.91K subscribers
Post #29 721
package.json — наше всё!

Когда вы начинаете новый проект, вы можете создать файл package.json с помощью команды
npm init


Командная строка задаст вам несколько вопросов -- и новый файл package.json готов!

Для чего он нужен?

В этом файле указывается базовая информация о вашем проекте: название, версия, ссылка на репозиторий, информация об авторе. А ещё в нём указываются зависимости — библиотеки и модули, которые нужны вашему проекту для работы. Для них есть отдельный раздел "dependencies", который содержит название модуля и его версию.

Например, если в только что созданном проекте установить react и react-dom через команду
npm i react react-dom

то к содержимому вашего package.json добавится следующая структура:
"dependencies": { 
"react": "^18.2.0",
"react-dom": "^18.2.0"
}

Кстати, в версии у этих пакетов содержится символ ^. Этот символ позволит npm обновить версию react и react-dom до более свежей минорной версии или патча, если в момент выполнения команды npm install или npm update у реакта уже будет новая версия.

Если не хотите, чтобы npm что-то вам обновлял, можно указать фиксированную версию: "react": "18.2.0". А ещё есть калькулятор версий, где можно проверить, какие версии пакета могут вам установиться, если вы укажете версию, например, "~16.8.3" или "18.x".

Помимо dependencies

В package.json есть и другие способы работы с зависимостями вашего модуля:

peerDependencies — например, вы разрабатываете библиотеку, и хотите указать, что для её работы требуются определённая версия какого-то другого пакета. При этом напрямую этот пакет вы не используете, но ожидаете, что использовать его будет тот, кто вашу библиотеку установит. В этом случае вы можете указать у себя, например:
"peerDependencies": {  
"webpack": ">=5.x",
}

Тогда, если я установлю себе вашу библиотеку, npm удостоверится, что у меня уже установлен вебпак 5 мажора и выше.

bundleDependencies — те зависимости, которые npm упакует в архив вместе с вашим модулем при выполнении команды npm pack.

Ещё про версии зависимостей

Устанавливать зависимости можно не только через указание версий модуля в npm. Вместо версии можно указать, например, путь до модуля, который хранится у вас в какой-нибудь отдельной папке:

"dependencies": {  
"myOtherProject": "file:../projects/myOtherProject"
}


Или ссылку репозиторий с вашим модулем (даже с указанием конкретной ветки в этом репозитории после символа # в конце):
"dependencies": {  
"project": "git+ssh://git@github.com/blablabla/project.git#dev"
}

Или ссылку на скачивание архива с вашем модулем:
  "dependencies": { 
"remoteProject": "http://example.com/example.tar.gz"
},


Ещё больше интересного про этот файл можно прочитать в документации.
  • 👍 14
  • ❤ 6
  • ⚡ 2
  • 🌚 2
More from @nepshajs
  1. Sep 30, 2026👨‍💻 Фронтенд с AI: что можно делегировать агентам 5 октября, стартует конференция Podlod…
  2. Jul 30, 2026Моё хобби — менять названия полей в тулах и смотреть, как это влияет на качество заполнени…
  3. Jul 20, 2026Расширил свой недавний доклад про работу с GigaChat API и расскажу его 25 июля на Технохаб…
  4. Jul 17, 2026Никогда ещё не уходил с митапа под таким сильным впечатлением, как вчера после JS x AI con…
  5. Jul 15, 2026Агентские фреймворки больше не нужны Мне стали часто попадаться видео автора Jake Van Clie…
  6. Jul 10, 2026JS x AI митап в Сбер.Среде Я тут недавно осознал, что я уже два с половиной года работаю с…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →