Что такое npm
Перейти к содержимому

Что такое npm

  • автор:

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

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

Node.js за 5 минут

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

console.log("Hello World"); 

Теперь откройте терминал, зайдите в папку с вашей программой и выполните команду node helloworld.js . Вместо helloworld.js может быть любой другой файл с . Убедитесь, что у вас установлен Node.js. Результат выполнения программы будет выглядеть примерно так:

Результат выполнения helloworld.js

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

Пакеты в Node.js

Вкратце, пакетом в Node.js называется один или несколько , представляющих собой библиотеку или инструмент.
npm (аббр. node package manager) — это стандартный менеджер пакетов, автоматически устанавливающийся вместе с Node.js. Он используется для скачивания пакетов из облачного сервера npm, либо для загрузки пакетов на эти сервера.

Файл package.json

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

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

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

$ npm install canvas-chart 

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

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

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

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

Посмотрев на этот код, мы можем сказать, что пакет зависит от пакета . Опубликовать пакет можно с помощью комадны npm publish .

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

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

$ npm install grunt-cli 

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

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

  • Создайте директорию для вашего проекта. С точки зрения сервера эта директория будет корневой.
  • Откройте эту директорию через терминал.
  • Теперь скачайте и установите Grunt. Аргумент -g указывает npm на то, что пакет следует скачивать в основную папку для хранения пакетов, а не в текущую директорию.
$ npm install -g grunt-cli 
module.exports = function(grunt) < // 1. Общая конфигурация grunt.initConfig(< pkg: grunt.file.readJSON('package.json'), concat: < // 2. Настройки для склеивания файлов dist: < src: [ 'js/libs/*.js', // Все js-файлы в директории libs 'js/global.js' // Отдельный файл ], dest: 'js/build/production.js', >> >); // 3. Сообщаем, какие плагины мы собираемся использовать grunt.loadNpmTasks('grunt-contrib-concat'); // 4. Определяем задачу по умолчанию, которая будет выполняться при запуске команды grunt в терминале. grunt.registerTask('default', ['concat']); >; 

Итог

В этой статье я попробовал объяснить то, как работает npm для новичков в Node.js. Теперь вы должны быть способны устанавливать и использовать различные Node.. Спасибо за чтение!

Что такое npm

NPM

Что это?

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

Для чего нужно это знать?

Представим ситуацию, когда мы разрабатываем проект, и установили несколько npm пакетов. Они лежат у нас в проекте в папке node_modules. У нас на машине все работает, но рано или поздно нам необходимо запустить проект на другой машине, либо дать другому разработчику. И мы пушим проект в git, но папку node_modules в git мы не заливаем, так как она большая и занимает много места. И на другой машине невозможно запустить проект, так как неизвестно какие пакеты из node мы использовали. Для этого нам и нужен npm и package.json. Он хранит список пакетов, необходимых для проекта с нужными версиями, и на другой машине мы можем легко установить все пакеты, которые указаны там с помощью команды npm install

Какие базовые понятия включает этот навык?

Каждый проект в JavaScript – будь то Node.js или веб-приложение – может быть скопирован как npm-пакет с собственным описанием и файлом package.json. В package.json включено поле scripts для автоматизации сборки dependencies и devdependencies представляют собой словари с именами npm-библиотек (ключ) и их семантические версии (значение). О версионировании: ^: последний минорный релиз. Например, ^1.0.4 установит версию 1.3.0, если это последний минорный релиз в серии 1 мажорного релиза. ~: последний патч-релиз. ~1.0.4 установит 1.0.7, если эта последняя минорная версия в серии минорных релизов 1.0. Все версии пакетов будут отображены в сгенерированном файле package-lock.json. Файл package-lock.json описывает версии пакетов, используемые в JavaScript-проекте. Если package.json включает общее описание зависимостей (название товара), то package-lock.json более детальный – всё дерево зависимостей. package-lock.json генерируется командой npm install и читается npm CLI, чтобы обеспечить воспроизведение окружения для проекта через npm ci. npm install – команда, устанавливающая пакеты. Чтобы избежать добавления в репозитории вредоносных пакетов, организация npm.js пришла к идее аудита экосистемы, создав модуль npm audit. Он предоставляет информацию об уязвимостях в пакетах и о существовании версий с исправлениями. Отправить пакет в npmjs.com очень просто – нужно набрать в консоли npm publish. Важная часть, которой пренебрегают авторы – версионирование. Вот набор эмпирические правил semver.org, указывающих, когда следует увеличить номер версии: Мажорная версия: когда сделаны обратно несовместимые изменения API. Минорная версия: когда вы добавляете новую функциональность, не нарушая обратной совместимости. Патч-версия: когда вы делаете обратно совместимые исправления. Еще более важно следовать вышеуказанным правилам при публикации собственных пакетов, чтобы гарантировать, что вы не нарушаете чью-либо совместимость, так как по умолчанию в npm берется версия ^ (следующая младшая версия).

Где я могу освоить этот навык?

Освоить навык «NPM» ты можешь проходя обучение в нашей менторинге по программе «Frontend-разработчик». Более подробно навык изучается в проекте VUE TODO LIST.

Что Такое npm? Общее Руководство для Начинающих

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

Нужен недорогой, но надёжный хостинг для вашего нового проекта? Обратите внимание, что в Hostinger действуют скидки на все тарифы хостинга. Воспользуйтесь предложением и разместите сайт до 90% дешевле!

Как Работает npm?

Он работает, выполняя одну из своих двух ролей:

  • Это широко используемый репозиторий для публикации проектов Node.js с открытым исходным кодом. Это означает, что это онлайн-платформа, где каждый может публиковать и делиться инструментами, написанными на JavaScript.
  • npm – это инструмент командной строки, который помогает взаимодействовать с онлайн-платформами, такими как браузеры и серверы. Эта утилита помогает в установке и удалении пакетов, управлении версиями и зависимостями, необходимыми для запуска проекта.

Чтобы использовать npm, нужно сначала установить node.js , так как они связаны.

Страница Загрузки Node.js

Утилита командной строки npm обеспечивает корректную работу node.js.

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

Метаданные показывают несколько аспектов проекта в следующем порядке:

  • Название проекта
  • Первоначальная версия
  • Описание
  • Точка входа
  • Тестовые команды
  • Репозиторий Git
  • Ключевые слова
  • Лицензия
  • Зависимости
  • DevDependencies

Метаданные помогают идентифицировать проект и служат основным источником информации о проекте.

Вот пример того, как вы можете идентифицировать проект по его метаданным:

< "name": "hostinger-npm", "version": "1.0.0", "description": "npm guide for beginner", "main": "beginner-npm.js", "scripts": < "test": "echo \"Error: no test specified\" && exit 1" >, "keywords": [ "npm", "example", "basic" ], "author": "Hostinger International", "license": "MIT", "dependencies": < "express": "^4.16.4" >>
  • Имя: hostinger-npm
  • Версия: 1.0.0
  • Это руководство по npm для начинающих
  • Точка входа в проект или основной файл: beginner-npm.js
  • Ключевые слова или теги для поиска проекта в репозитории: npm, example и basic
  • Автор проекта: Hostinger International .
  • Этот проект лицензирован в рамках MIT
  • Зависимости или другие модули, которые использует этот модуль – express 4.16.4

Как Установить Модули npm и Запустить Проекты?

Убедитесь, что node.js и npm установлены, выполнив несколько простых команд.

Чтобы посмотреть, установлен ли node.js, откройте Терминал или инструмент командной строки и введите node -v . Если пакет node.js уже установлен, вы должны увидеть номер версии:

$ node -v v0.10.9

Чтобы узнать, установлен ли npm, введите npm -v. Опять же таки, вы должны увидеть номер версии:

$ npm -v 1.2.25

Если он не установлен, скачайте Node с сайта node.js и следуйте инструкциям установщика.

npm известен своим однострочным установщиком:

$ curl https://npmjs.org/install.sh | sh

Так как новые версии npm выходят регулярно, позже вы сможете обновить его. Чтобы обновить npm, просто скачайте установщик с сайта node.js и запустите его снова. Последняя версия автоматически заменит версию на вашем компьютере.

Также вы можете обновить его с помощью этой команды:

$ npm update -g npm 

Инициализация Проекта с npm

Если у вас уже есть Node и npm, и вы хотите приступить к разработке, выполните команду npm init . Это запустит инициализацию вашего проекта.

Например, давайте создадим каталог с именем test-npm и cd в него. Теперь давайте запустим нашу первую команду npm:

$ npm init

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

Полезной функцией является то, запуск инициализации менеджера пакетов Node сопровождается объяснениями:

mymacs-MacBook-Pro: test-npm mymac$ npm init This utility will walk you through creating a package.json file. It only covers the most common items, and tries to guess sane defaults. See `npm help json` for definitive documentation on these fields and exactly what they do. Use `npm install --save` afterwards to install a package and save it as a dependency in the package.json file. Press ^C at any time to quit. name: (test-npm)

Ответьте на подсказки npm init .

name: (test-npm)hostinger-npm version: (1.0.0)1.0.0 description: npm guide for beginner entry point: (index.js) beginner-npm.js test command: git repository: keywords: npm, example, beginner author: Hostinger Internationallicense: (ISC) MIT

Нажмите “ Enter ”, чтобы принять их. Затем npm init даст вам возможность предварительно просмотреть package.json , который будет создан.

Это выглядит следующим образом:

< "name": "hostinger-npm", "version": "1.0.0", "description": "npm guide for beginner", "main": "beginner-npm.js", "scripts": < "test": "echo \"Error: no test specified\" && exit 1" >, "keywords": [ "npm", "example", "basic" ], "author": "Hostinger International", "license": "MIT", "dependencies": < "express": "^4.16.4" >> Is this OK? (yes) yes mymac-MacBook-Pro: test-npm mymac$

Введите “ yes ” и нажмите “ Enter ”, чтобы сохранить package.json . Вы всегда можете изменить его позже, либо отредактировав файл напрямую, либо снова запустив npm init .

Установка Модулей npm

Пакет в node.js содержит все файлы, необходимые для модуля. Модули – это библиотеки JavaScript, которые вы можете включить в свой проект.

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

$ npm install $ npm i

В приведенной выше команде замените на имя модуля, который вы хотите установить.

Например, если вы хотите установить Express – наиболее используемый и наиболее известный фреймворк node.js, вы можете выполнить следующую команду:

$ npm install express
[mymac-MacBook-Pro:test-npm mymac$ npm install express] npm notice created a lockfile as package-lock.json. You should commit this file. npm WARN hostinger-npm@1.0.0 No repository field. + express@4.16.4 added 48 packages from 36 contributors and audited 121 packages in 2.798s found 0 vulnerabilities mymac-MacBook-Pro: test npm mymac$

Приведённая выше команда установит модуль Express в /node_modules в текущий каталог.

Каждый раз, когда вы устанавливаете модуль из npm, он будет установлен в папку node_modules .

Вот как это выглядит после установки модуля в ваш проект:

[mymac-MacBook-Pro:test-npm mymac$ npm install express] npm notice created a lockfile as package-lock.json. You should commit this file. npm WARN hostinger-npm@1.0.0 No repository field. + express@4.16.4 added 48 packages from 36 contributors and audited 121 packages in 2.798s found 0 vulnerabilities mymac-MacBook-Pro: test npm mymac$

Выводы

Разбираясь с вопросом, что такое npm, вы наверняка заметили, что помимо своей основной функции – функции онлайн-базы данных для различных пакетов node.js – ещё одной целью менеджера пакетов Node (npm) являются автоматические зависимости и управление файлами package.json , благодаря его интерфейсу командной строки.

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

$ curl https://npmjs.org/install.sh | sh
$ npm -v
$ npm init

$ npm install $ npm i

Если вы планируете работать с JavaScript, npm – незаменимый инструмент в вашем рабочем процессе.

Ольга вже близько восьми років працює менеджером у сфері IT, три з яких вона займається SEO. Написання технічних завдань та інструкцій — один з її основних обов’язків. Її хобі — дізнаватися щось нове і створювати цікаві та корисні статті про сучасні технології, веброзробку, мови програмування, пошукову оптимізацію сайтів та багато іншого.

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

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