Что такое нпм?
Node Package Manager или NPM — это основной менеджер пакетов для JavaScript и Node.js, он состоит из двух основных элементов: CLI и онлайн-репозитория.
- CLI — это интерфейс команд, который позволяет программистам использовать и публиковать пакеты.
- Онлайн-репозиторий, в котором хранятся пакеты, представляет собой большую библиотеку.
Если было непонятно, представьте репозиторий как магазин, который получает пакеты от отраслей (авторов пакетов) и доставляет их клиентам (пользователям пакетов).
Пакет.json
Одним из компонентов, присутствующих в использовании пакета, является package.json, основная функция этого файла — описать основную информацию о вашем проекте.
Когда вы запустите код «npm init» в терминале, он будет создан.
Эти вещи будут частью пакета:
- name, это буквально название вашего проекта.
- версии, это мало используется, потому что нет причин контролировать версию библиотеки с открытым исходным кодом.
- описание, в основном описание проекта.
- license, это лицензия вашего проекта, но только если она вам нужна.
- main, основной файл JS, обычно имя этого файла «main.js».
npm-скрипты
Package.json также поддерживает некоторые скрипты, которые можно запускать локально в вашем терминале. Например:
"scripts": { "build": "tsc", "format": "prettier --write **/*.ts", "format-check": "prettier --check **/*.ts", "lint": "eslint src/**/*.ts", "pack": "ncc build", "test": "jest", "all": "npm run build && npm run format && npm run lint && npm run pack && npm test" }
Скрипты eslint, prettier, ncc и jest устанавливаются локально в вашу папку node_modules. Можно создавать любые сценарии, даже определенный код, который вы используете для запуска своего проекта, например, как веб-пакет.
Чтобы запустить эти скрипты, вам нужно использовать npm run (название скрипта).
Зависимости e devDependencies
Они приходят как ключи в package.json, ваши значения — это имена библиотек, которые являются зависимостями, которые будут использоваться. Например:
{ "dependencies": { "@actions/core": "^1.2.3", "@actions/github": "^2.1.1" }, "devDependencies": { "@types/jest": "^25.1.4", "@types/node": "^13.9.0", "@typescript-eslint/parser": "^2.22.0", "@zeit/ncc": "^0.21.1", "eslint": "^6.8.0", "eslint-plugin-github": "^3.4.1", "eslint-plugin-jest": "^23.8.2", "jest": "^25.1.0", "jest-circus": "^25.1.0", "js-yaml": "^3.13.1", "prettier": "^1.19.1", "ts-jest": "^25.2.1", "typescript": "^3.8.3" } }
Они устанавливаются с помощью npm install--save (в случае зависимостей) или npm install --save-dev (в случае devDependencies).
Зависимости связаны с производством, пакеты, которые будут поддерживаться даже в части реализации. DevDependencies — это зависимости, которые будут использоваться только при разработке, например, babel-loader.
Одна из утилит для их разделения предназначена для удаления тех, которые не будут использоваться в развертывании.
Пакет-lock.json
Этот файл похож на этикетку с ингредиентами на упаковке продукта. Так вот, как не читай эти лейблы, не надо читать package-lock, только если нужно устранить какую-то конкретную ошибку.
Он создается при использовании npm i
Шрифты: https://www.freecodecamp.org/news/what-is-npm-a-node-package-manager-tutorial-for-beginners/