Как установить package json

Управление модулями Node.js с помощью npm и package.json

Благодаря высокой производительности ввода/вывода (I/O), хорошо известному синтаксису JavaScript и другим удобным функциям Node.js быстро стал популярной средой выполнения для веб-разработки бэкенда. Но по мере роста изначально сложного приложения управлять его кодовой базой и ее зависимостями становится все труднее. Node.js решает эту проблему с помощью модулей. Модули – это отдельные файлы JavaScript, содержащие функции или объекты, которые могут использоваться другими программами или модулями. Набор из одного или нескольких модулей обычно называется пакетом, такими пакетами обычно управляют менеджеры пакетов.

npm (или Node.js Package Manager) – это самый популярный стандартный менеджер пакетов в экосистеме Node.js. В основном он используется для установки и управления внешними модулями в проектах, а также для установки широкого спектра инструментов CLI и запуска сценариев. npm отслеживает установленные в проекте модули с помощью файла package.json, который находится в каталоге проекта и содержит:

По мере усложнения проектов Node.js файл package.json становится особенно важным: он обеспечивает удобное управление метаданными и зависимостями, а также предоставляет вам более предсказуемые сборки, поскольку все внешние зависимости не изменятся. Файл будет автоматически отслеживать всю нужную информацию.

Редактировать этот файл можно и напрямую, но вам редко придется это делать.

В этом руководстве вы узнаете, как управлять пакетами с помощью npm. Сначала мы создадим файл package.json и ознакомимся с его содержимым. Затем мы попробуем использовать его для отслеживания всех модулей вашего проекта. Мы также составим полный список зависимостей пакета, обновим свои пакеты, удалим их и выполним аудит, чтобы обнаружить в пакетах уязвимости.

Требования

Для работы вам понадобится установка Node.js на вашей машине разработки. Здесь мы используем версию 10.17.0. Чтобы установить Node.js на macOS, следуйте мануалу Установка Node.js и настройка локальной среды разработки в macOS. Чтобы установить Node.js в Ubuntu 18.04 с помощью архива PPA, читайте Установка Node.js в Ubuntu 18.04.

Пакетный менеджер npm устанавливается вместе с Node.js; в руководстве мы используем его версию 6.11.3.

1: Создание файла package.json

Мы начнем нашу работу с создания тестового проекта – вымышленного модуля Node.js по имени locator, который принимает IP-адрес пользователя и возвращает страну происхождения этого адреса. Писать код модуля вам не придется: мы просто примем такой условный контекст, чтобы рассмотреть пакеты, которые были бы актуальны в подобном проекте.

Сначала создайте файл package.json для хранения метаданных о проекте и управления зависимыми модулями проекта Node.js. Как следует из расширения, это файл JSON (JavaScript Object Notation) – это стандартный формат для совместного использования кода, основанный на объектах JavaScript; JSON состоит из данных, хранящихся в виде пар «ключ-значение».

Читайте также: Основы работы с JSON

Поскольку файл package.json содержит множество свойств, его может быть сложно создать вручную с нуля, без шаблона. Чтобы упростить вам работу, npm предоставляет команду init. Это интерактивная команда, которая задает пользователю ряд вопросов и на основе полученных ответов создает файл package.json.

Команда init

Давайте настроим тестовый проект, чтобы позже попрактиковаться в управлении модулями на его примере. В оболочке создайте новую папку locator:

Теперь инициализируйте интерактивную командную строку:

Примечание: Если вы собираетесь использовать Git для контроля версий вашего кода, сначала создайте репозиторий Git, а затем запустите команду npm init. Команда автоматически поймет, что находится в папке с поддержкой Git. Если у вас установлен удаленный репозиторий Git, команда автоматически заполнит в файле package.json поля repository, bugs и homepage. Если вы инициализировали репозиторий после создания файла package.json, вам придется добавить эту информацию самостоятельно.

Читайте также:

Вы получите следующий вывод:

This utility will walk you through creating a package.json file.

It only covers the most common items, and tries to guess sensible defaults.

See `npm help json` for definitive documentation on these fields

and exactly what they do.

` afterwards to install a package and

save it as a dependency in the package.json file.

Press ^C at any time to quit.

package name: (locator)

Сначала вам будет предложено ввести название нового проекта. По умолчанию команда предполагает, что это имя папки, в которой вы находитесь в данный момент. Значения по умолчанию для каждого свойства указаны в скобках (). Поскольку значение name по умолчанию нам подходит, нажмите Enter, чтобы принять его.

Следующее значение, которое нужно ввести, – это version, версия. Как и name, это поле обязательно нужно заполнить, если ваш проект будет доступен другим пользователям в репозитории пакетов npm.

Примечание: Пакеты Node.js должны соответствовать семантическому управлению версиями (Semantic Versioning, semver). Исходя из этого, первое число в номере версии – это версия MAJOR (оно изменяется только при изменении API). Второе число – версия MINOR (изменяется при добавлении функций). Последнее число в номере версии – версия PATCH (это число изменяется при исправлении ошибок).

Нажмите Enter, чтобы принять номер версии по умолчанию.

Следующее поле – описание, description – полезная строка, объясняющая, что умеет этот модуль Node.js. Наш вымышленный проект locator принимает IP-адрес пользователя и возвращает страну происхождения этого адреса. Потому в поле description можно ввести что-то вроде:

Finds the country of origin of the incoming request

и нажать Enter. Описание очень помогает при поиске модулей.

В следующем запросе команда предложит указать точку входа, entry point. Если кто-то установит ваш модуль и объявит его зависимостью проекта, то значение entry point будет первой частью загруженной программы. Здесь следует указать относительный путь к файлу JavaScript, который будет добавлен в свойство main в package.json. Нажмите Enter, чтобы сохранить значение по умолчанию.

Затем вам будет предложено указать test command – это исполняемый скрипт или команда для тестового запуска вашего проекта. Многие популярные модули Node.js тестируются с помощью Mocha, Jest, Jasmine или других тестовых фреймворков. Тестирование выходит за рамки данной статьи, потому пока что оставьте этот параметр пустым и нажмите Enter, чтобы продолжить.

Потом команда init запросит репозиторий проекта на GitHub. В этом мануале мы не будем использовать его, поэтому также оставьте поле пустым.

После репозитория команда запрашивает ключевые слова, keywords. Это свойство представляет собой массив строк, содержащий полезные термины, которые люди могут использовать для поиска вашего проекта. Лучше всего использовать здесь небольшой набор слов, действительно имеющих отношение к вашему проекту – тогда поиск будет более точным.

Перечислите эти ключевые слова через запятую в виде строки. Для нашего тестового проекта мы используем ip, geo, country. Следовательно, в готовом пакете package.json в массиве keywords будет три элемента.

Следующее поле – author, автор. Оно поможет пользователям вашего модуля связаться с вами в случае необходимости. Например, если кто-то обнаружит в модуле уязвимость, он сможет сообщить вам о проблеме, чтобы вы ее исправили.

Поле author представляет собой строку в следующем формате: “имя \ (сайт)”. В нашем случае она может выглядеть так: “8host \ (https://your_domain)”. Электронную почту и данные о веб-сайте указывать не обязательно – достаточно просто ввести имя автора. Добавьте контактные данные автора и подтвердите их, нажав Enter.

Теперь вам будет предложено ввести лицензию, license. Эта строка определяет юридические права пользователей и ограничения на использование вашего модуля. Многие модули Node.js имеют открытый исходный код, поэтому npm по умолчанию устанавливает ISC.

На этом этапе вы должны рассмотреть варианты лицензирования и решить, что лучше всего подходит для вашего проекта. Подробные сведения о разных типах открытых лицензий можно найти в этом списке. Если вы не хотите предоставлять лицензию закрытого репозитория, вы можете ввести UNLICENSED. Мы будем использовать здесь стандартную лицензию ISC. Введите ISC в командную строку и нажмите Enter, чтобы завершить процесс создания файла.

Теперь команда init выведет на экран файл package.json, который она собирается создать. Наш файл будет выглядеть примерно так:

About to write to /home/8host/locator/package.json:

«description»: «Finds the country of origin of the incoming request»,

«test»: «echo \»Error: no test specified\» && exit 1″

«author»: «8host (https://your_domain)»,

Если данные в файле соответствуют вашим ожиданиям, нажмите Enter, чтобы завершить этот процесс и создать файл package.json. С помощью этого файла вы будете вести учет модулей, которые вы устанавливаете для своего проекта.

Теперь, когда у вас есть файл package.json, вы можете попробовать выполнить установку модулей.

2: Установка модулей

Для выполнения вспомогательных задач в разработке программного обеспечения часто используются внешние библиотеки. Это позволяет разработчикам сосредоточиться на бизнес-логике, быстрее и эффективнее создавать приложение.

Например, если нашему условному модулю locator нужно отправить внешний API запрос для получения географических данных, мы могли бы упростить эту задачу с помощью библиотеки HTTP. Поскольку основная цель нашего модуля – сообщить пользователю соответствующие географические данные, мы могли бы также установить пакет, который упростит выполнение HTTP-запросов, и не писать самостоятельно код, который выходит за рамки модуля.

Давайте остановимся на этом примере. В приложении locator мы будем использовать библиотеку axios, которая поможет обрабатывать HTTP-запросы. Установите ее:

Команда npm install (вы можете также использовать ее сокращенный вариант, npm i) установит пакет, имя которого вы укажете. Чтобы установить несколько пакетов, укажите их имена через пробел. В данном случае мы устанавливаем только axios. В конце команды можно указать опции, в данном случае мы используем опцию –save, которая указывает, что библиотека axios сохранится как зависимость проекта.

Когда библиотека будет установлена, вы увидите такой вывод:

added 5 packages from 8 contributors and audited 5 packages in 0.764s

found 0 vulnerabilities

Теперь откройте файл package.json. Здесь мы используем текстовый редактор nano.

Вы увидите в файле новое свойство:

«description»: «Finds the country of origin of the incoming request»,

«test»: «echo \»Error: no test specified\» && exit 1″

Источник

npm для простых смертных

Как установить package json. Смотреть фото Как установить package json. Смотреть картинку Как установить package json. Картинка про Как установить package json. Фото Как установить package json

Эта статья предназначена для тех, кто не очень дружит с Node.js, но хочет использовать приложения вроде Grunt, Gulp и тому подобные. Процесс работы с этими приложениями подразумевает редактирование файла package.json и использование команд npm, так что понимание принципов работы npm поможет вам справиться с трудностями.

Node.js за 5 минут

Понимание того, что такое Node.js поможет вам лучше разобраться с npm. В двух словах — Node.js это интерпретатор языка JavaScript. Сам по себе Node.js является приложением, которое получает на входе и выполняет его.
Давайте создадим простую программу. Создайте файл helloworld.js и поместите в него следующий код:

Как установить package json. Смотреть фото Как установить package json. Смотреть картинку Как установить package json. Картинка про Как установить package json. Фото Как установить package json

Программа просто выведет строку «Hello World» в терминал.

Пакеты в Node.js

Файл package.json

Файл package.json содержит в себе информацию о вашем приложении: название, версия, зависимости и тому подобное. Любая директория, в которой есть этот файл, интерпретируется как Node., даже если вы не собираетесь публиковать его.
Способ использования файла package.json зависит от того, собираетесь ли вы скачивать пакет или публиковать его.

Скачивание пакетов

Если вы хотите скачать пакет вручную, вам необязательно использовать для этого package.json. Вы можете выполнить в терминале команду npm с названием нужного пакета в качестве аргумента команды, и пакет будет автоматически скачан в текущую директорию. Например:

Также для скачивания пакетов вы можете использовать package.json. Создайте в директории вашего проекта файл package.json, и добавьте в него следующий код (мы не указываем название нашего пакета и версию, мы не собираемся его публиковать; мы указываем название и версию пакетов для загрузки):

Публикация пакета

Чтобы опубликовать пакет, вам потребуется собрать все исходные коды и файл package.json в одной директории. В package.json должны быть указаны название, версия и зависимости пакета. Например:

Использование пакета в качестве исполняемого файла

Теперь вы знаете, что такое пакет и как он может зависеть от других пакетов. Также вы узнали, как npm работает с пакетами. Давайте перейдём от теории к практике и установим Grunt.

Установка Grunt с помощью npm

Источник

NPM. Package.json. Установка модулей. Определение команд¶

Кроме встроенных и кастомных модулей Node.js существует огромный пласт различных библиотек и фреймворков, разнообразных утилит, которые создаются сторонними производителями и которые также можно использовать в проекте, например, express, grunt, gulp и так далее. И они тоже нам доступны в рамках Node.js. Чтобы удобнее было работать со всеми сторонними решениями, они распространяются в виде пакетов. Пакет по сути представляет набор функциональностей.

Для автоматизации установки и обновления пакетов, как правило, применяются систему управления пакетами или менеджеры. Непосредственно в Node.js для этой цели используется пакетный менеджер NPM (Node Package Manager). NPM по умолчанию устанавливается вместе с Node.js, поэтому ничего доустанавливать не требуется. Но можно обновить установленную версию до самой последней. Для этого в командной строке/терминале надо запустить следующую команду:

Для нас менеджер npm важен в том плане, что с его помощью легко управлять пакетами. К примеру, создадим на жестком диске новую папку modulesapp (В моем случае папка будет находиться по пути C:\node\modulesapp ).

Как установить package json. Смотреть фото Как установить package json. Смотреть картинку Как установить package json. Картинка про Как установить package json. Фото Как установить package json

Далее определим файл простейшего сервера. Для этого в корневую папку проекта modulesapp добавим новый файл app.js :

Запустим сервер командой node app.js :

Как установить package json. Смотреть фото Как установить package json. Смотреть картинку Как установить package json. Картинка про Как установить package json. Фото Как установить package json

И в адресной строке браузера введем адрес http://localhost:3000/ :

Как установить package json. Смотреть фото Как установить package json. Смотреть картинку Как установить package json. Картинка про Как установить package json. Фото Как установить package json

Файл package.json¶

Теперь снова добавим express с помощью следующей команды:

Как установить package json. Смотреть фото Как установить package json. Смотреть картинку Как установить package json. Картинка про Как установить package json. Фото Как установить package json

Эта команда возьмет определение всех пакетов из секций dependencies и загрузит их в проект.

devDependencies¶

Удаление пакетов¶

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

Команды npm¶

NPM позволяет определять в файле package.json команды, которые выполняют определенные действия. Например, определим следующий файл app.js :

В данном случае мы получаем переданные при запуске приложению параметры.

И определим следующий файл package.json :

Например, для запуска команды start

Команды с остальными названия, как например, dev в вышеопределенном файле, запускаются так:

Например, последовательно выполним обе команды:

Источник

Node Package Manager

Введение

Менеджер пакетов, входящий в состав Node.js.

Установка пакета производится при помощи команды:

Все доступные для установки пакеты и их краткое описание:

Этой же командой можно производить выборочный поиск пакетов.

Установка

Входит в состав Nodejs поэтому обычно не требует отдельной установки.

Об установке Nodejs читайте в статье установка Nodejs

sudo apt install npm

Узнать версию

Проверить версии установленных Nodejs, npm и npx можно следующими командами

Начало работы

Логично начать с создания директории для нового проекта.

Я буду работать над сайтом HeiHei.ru поэтому назову папку heihei

Перейдём в созданную директорию

Убедимся, что в новой папке пусто

Теперь выполним важнейшую для будущей разработки команду

This utility will walk you through creating a package.json file.
It only covers the most common items, and tries to guess sensible defaults.

See `npm help json` for definitive documentation on these fields
and exactly what they do.

` afterwards to install a package and
save it as a dependency in the package.json file.

Press ^C at any time to quit.
package name: (my-project)

npm предложит заполнить информацию о проекте. Появятся следующие поля:

name: (heihei)
version: (1.0.0)
description:
entry point: (index.js)
test command:
git repository:
keywords:
author:
license: (ISC)

Можно заполнить все поля, но для простоты пока просто нажмем несколько раз подряд Enter

Если предварительно привязать директорию к удалённому репозиторию GIT то npm при инициализации это увидит и сам заполнит пункт git repository.

Возможно, это и есть самый простой и правильный путь, если Вы планируете работать дальше с GIT.

В конце должно появиться подобное сообщение. Нажимаем Enter ещё раз.

About to write to C:\Users\ao\Desktop\Sites\heihei\package.json:

<
«name»: «heihei»,
«version»: «1.0.0»,
«description»: «»,
«main»: «index.js»,
«scripts»: <
«test»: «echo \»Error: no test specified\» && exit 1″
>,
«author»: «»,
«license»: «ISC»
>

Проверим, что появилось в нашей папке после инициализации

package.json это файл, который будет хранить в себе список установленных пакетов и их версии.

Сразу после инициализации он содержит только информацию о проекте

В мире Python похожие задачи решают venv и freeze

Установка пакетов

Установим первый пакет. Начнём с jquery.

npm install jquery

npm notice created a lockfile as package-lock.json. You should commit this file.
npm WARN heihei@1.0.0 No description
npm WARN heihei@1.0.0 No repository field.

+ jquery@3.4.1
added 1 package from 1 contributor and audited 1 package in 1.227s
found 0 vulnerabilities

В версиях NPM ниже 5.0.0 при установке пакетов не происходило автоматической записи в файл package.json

Пример такой установки я разбираю в статье Gulp

Если Вам нужно установить не последнюю версию jquery а архивную используйте @номер_версии. Например:

npm install jquery @3.3.1

Проверим, что появилось в нашей папке после установки первого пакета

node_modules/ package.json package-lock.json

Файл package-lock.json появиля в пятой версии NPM как дополнительное средство контроля совместимости.

Особенно для случаев когда файл package.json скопирован и через некоторое время с его помощью произвели инициализацию (npm init), но за это время какой-то из пакетов успел получить новую версию.

Подробнее про это можно прочитать здесь, здесь, здесь

Про контроль версий можно прочитать на сайте semver.org

Посмотрим содержимое файла package-lock.json

Посмотрим, что лежит в папке node_modules. После установки jquery логичным будет, увидеть там папку jquery

В данном случае всё очевидно, но огромное количество пакетов создадут не одну папку а сразу несколько.

Старые версии npm создавали всегда одну папку и размещали все зависимости туда.

Новые версии npm сохраняют зависимости в node_modules.

Посмотрим, что лежит в папке node_modules/jquery.

AUTHORS.txt bower.json dist/ external/ LICENSE.txt package.json README.md src/

Как Вы можете видеть у jquery есть свой собственный файл package.json на данном этапе он гораздо содержательней нашего корневого package.json но это не надолго.

Установка определённой версии пакета

Установим ещё один пакет и поговорим о его возможных версиях

$ npm install normalize.css

Если package.json не содержит записи о normalize.css то будет установлена последняя стабильная версия.

Если в package.json указана версия, будет установлена она.

Если Вы хотите установить какую-то определённую версию, укажите её в package.json либо введите @номер_версии при установке.

Например npm install normalize.css @8.0.1

npm WARN heihei@1.0.0 No description
npm WARN heihei@1.0.0 No repository field.

Источник

📦 Что такое npm? Гайд по Node Package Manager для начинающих

Как установить package json. Смотреть фото Как установить package json. Смотреть картинку Как установить package json. Картинка про Как установить package json. Фото Как установить package json

Miroslav Kungurov

Как установить package json. Смотреть фото Как установить package json. Смотреть картинку Как установить package json. Картинка про Как установить package json. Фото Как установить package json

Программная платформа Node.js появилась в 2009 г., и с тех пор на ней были построены сотни тысяч приложений. Одной из причин успеха стал npm – популярный пакетный менеджер, позволяющий JS-разработчикам быстро делиться пакетами.

На момент написания статьи в npm содержится 1.3 млн пакетов с общим количеством скачиваний 16 млрд.

1. Что такое npm?

npm (Node Package Manager) – дефолтный пакетный менеджер для JavaScript, работающий на Node.js. Менеджер npm состоит из двух частей:

Структуру репозитория npmjs.com можно представить, как центр исполнения заказов, который получает товары (npm-пакеты) от продавцов (авторы пакетов) и распространяет эти товары среди покупателей (пользователи пакетов).

В центре исполнения заказов ( npmjs.com ) в качестве персональных менеджеров для каждого покупателя работает армия вомбатов ( npm CLI ).

Зависимости поставляются следующим образом (Рис. 1).

npm install » data-src=»https://media.proglib.io/posts/2020/07/19/85d0ec896b3ad06d69bc27c49c317612.png» > Рис. 1. Процесс установки пакета через npm install

Процесс размещения пакета выглядит, как показано на Рис. 2.

npm publish » data-src=»https://media.proglib.io/posts/2020/07/19/5e2cd72e42190a38f0f46cf7da1d018d.png» > Рис. 2. Процесс размещения пакета через npm publish

Теперь детально рассмотрим работу вомбатов.

1.1. Файл package.json

package.json можно представить, как стикеры (список пакетов нужных версий) на npm-коробке (проект). Файл генерируется командой npm init при создании JavaScript/Node.js проекта со следующими метаданными:

1.2. Скрипты npm

В package.json включено поле scripts для автоматизации сборки, например:

1.3. dependencies и devDependencies

dependencies и devdependencies представляют собой словари с именами npm-библиотек (ключ) и их семантические версии (значение). Пример из шаблона TypeScript Action :

1.4. Файл package-lock.json

Файл package-lock.json описывает версии пакетов, используемые в JavaScript-проекте. Если package.json включает общее описание зависимостей (название товара), то package-lock.json более детальный – всё дерево зависимостей.

2. Установка пакетов

Так как пользователи чаще скачивают пакеты (16 млрд скачиваний против 13 млн публикаций), хорошо бы разобраться, как их устанавливать.

2.1. npm install

npm install – команда, устанавливающая пакеты.

По умолчанию npm install

npm сделал установку пакетов JavaScript настолько простой, что команда часто используется некорректно и в сообществе разрабов появились мемы на эту тему:

Как установить package json. Смотреть фото Как установить package json. Смотреть картинку Как установить package json. Картинка про Как установить package json. Фото Как установить package jsonРис. 3. Мем про node_modules

2.2. npm ci

2.3. npm audit

Как установить package json. Смотреть фото Как установить package json. Смотреть картинку Как установить package json. Картинка про Как установить package json. Фото Как установить package jsonПример аудита для пакета static-eval

Если исправления доступны в следующих версиях пакета, npm audit fix автоматически обновит версии затронутых зависимостей.

3. Размещение пакетов

Перейдем от потребления пакетов к их размещению.

3.1. npm publish

Еще более важно следовать вышеуказанным правилам при публикации собственных пакетов, чтобы гарантировать, что вы не нарушаете чью-либо совместимость, так как по умолчанию в npm берется версия ^ (следующая младшая версия).

Заключение

В этой публикации мы познакомились со структурой npm и узнали:

Если самостоятельная работа с npm-пакетами вызывает трудности, и вам требуется помощь наставника, мы советуем обратить внимание на курс факультета Веб-разработки GeekBrains, где вы получите готовую базу навыков и необходимую поддержку. Вы не только освоите работу с Node.js, но и научитесь целиком разрабатывать безопасные веб-приложения.

Курс поможет освоить профессию веб-разработчика, получить диплом и создать портфолио с рабочими проектами. В случае успешного прохождения команда университета поможет с трудоустройством. Ознакомиться с программой и отзывами можно, нажав расположенную ниже кнопку.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *