Как узнать версию node
Команды для работы с NPM
ГИД по командам консоли для работы с менеджером пакетов NPM: как установить, обновить или удалить установленный модуль или пакет NPM и другие команды NPM
Современная разработка очень тесно связана с использованием Node JS. В свою очередь Node JS используется как оболочка для работы с NPM и его пакетами (всем известная папка node_modules).
В данной статье я постараюсь перечислить все самые популярные команды для NPM: установка, обновление, удаление пакетов и др.
Инструкции по NPM
И всё таки думаю что стоит для начала упомянуть пару важных консольных команд для Node JS.
Как посмотреть список всех команд Node.js
Чтобы посмотреть список всех команд доступных в Node.js, для этого нужно ввести в консоли команду:
Как узнать версию установленного Node.js
Команды для NPM и работы с пакетами, модулями
Если расписывать команды NPM-а, то так же начнём с того как в консоли вывести все доступные команды нпма.
access, adduser, audit, bin, bugs, c, cache, ci, cit, completion, config, create, ddp, dedupe, deprecate, dist-tag, docs, doctor, edit, explore, get, help, help-search, hook, i, init, install, install-test, it, link, list, ln, login, logout, ls, outdated, owner, pack, ping, prefix, profile, prune, publish, rb, rebuild, repo, restart, root, run, run-script, s, se, search, set, shrinkwrap, star, stars, start, stop, t, team, test, token, tst, un, uninstall, unpublish, unstar, up, update, v, version, view, whoami
Например посмотреть инструкции для обновления:
В установленном по умолчанию браузере откроется страница с инструкциями по данной команде. Инструкции находятся локально и не требуют подключения к интернету.
Как узнать версию NPM
Как обновить NPM
В отличии от Node.js, NPM знает как обновить себя! Чтобы обновить свой NPM до последней версии, вводим в терминале такую команду:
Инициализация пакетов NPM
Команда npm init создаст файл package.json или установит прописанные пакеты из файла package.json если он уже создан.
Работа с NPM-пакетами
Установить пакеты из файла package.json :
npm скачает и установит все пакеты указанные в файле package.json
Посмотреть список установленных пакетов:
Посмотреть список установленных пакетов, которые требуют обновления:
Список глобально установленных пакетов требующих обновления:
Глобальная установка пакета:
Удалить пакет:
Удалить глобально установленный пакет:
Обновить пакеты:
И в заключение, если вы пользуетесь конролем версий Git, то незабудьте добавить в файл .gitignore исключение для папки node_modules, чтобы гит не индексировал файлы из этой папки. Для этого создайте файл .gitignore если он у вас ещё не создан и пропишите в нём отдельной строкой:
Обновление пакетов NPM при изменении мажорной версии
Для обновления мажорной версии есть такая команда:
— в итоге будут обновлены все пакеты.
. Делайте такое обновление только в случае если вы уверены и понимаете что делаете. Мажорная версия несёт изменения для которых есть изменения в настройках.
Посмотрите это видео, где есть понятное объяснение по версиям пакетов NPM:
*** Авторизируйтесь чтобы писать комментарии.
Полезные команды для работы с Node.js
Перед тем как рассматривать полезные команды при работе с Node.js, её необходимо установить.
Установленная версия Node.js.
Установленная версия npm.
Список установленных пакетов.
Установить любой пакет.
Команда npm i package является укороченной альтернативой предыдущей команды.
npm uninstall package — удаляет установленный пакет по имени.
Удалить установленный пакет.
Команда npm list package — покажет версию установленного пакета, а команда npm view package version — последнюю версию пакета, которая существует.
Версия установленного пакета.
Файл package.json.
Напоследок хотелось бы рассказать про Node Version Manager. Эта утилита, которая позволяет быстро менять версии Node.js.
Чтобы её установить, достаточно запустить скрипт
Node.js. Утилиты npm и npx
Утилита npm
Утилита npm — это менеджер пакетов, который входит в состав Node.js. Пакетом называется один или несколько js-файлов, представляющих собой какую-то библиотеку или инструмент. Менеджер пакетов предназначен для скачивания пакетов из облачного сервера, либо для загрузки (публикации) пакетов на этот сервер.
1. Инициализация проекта
Для создания нового проекта нужно создать директорию проекта, перейти в нее и выполнить команду
2. Файл package-lock.json
3. Установленные пакеты
Получить список всех установленных в директории проекта npm-пакетов можно с помощью команды
Получить список всех установленных глобально npm-пакетов (см.ниже) можно с помощью команды
4. Подробная информация о пакете
Посмотреть подробную информацию о пакете, доступного через npm-репозиторий
Получить информацию из npm-репозитория о последней доступной версии пакета
5. Локальная установка пакетов
Установить все пакеты из секций dependencies и devDependencies файла package.json :
Установить все пакеты из секции dependencies файла package.json (для production сервера)
Установить пакет package-name и добавить в секцию devDependencies файла package.json :
Установить пакет package-name и добавить в секцию dependencies файла package.json :
6. Локальное удаление пакетов
Удалить пакет package-name и удалить его из секции devDependencies файла package.json :
Удалить пакет package-name и удалить его из секции dependencies файла package.json :
7. Глобальная установка пакета
По умолчанию npm будет устанавливать все пакеты в локальной директории, в которым мы сейчас работаем (директория проекта). Если нужно, чтобы пакет был доступен всем приложениям, его нужно установить глобально. Но это не лучшее решение — разные проекты могут требовать разные версии одного пакета. Глобально установленный пакет будет нормально работать в одном проекте и вызывать ошибку в другом.
8. Глобальное удаление пакета
Так что если из-за глобально установки пакета возникли трудности — можно удалить его с помощью команды
9. Локальное обновление пакетов
Обновить один пакет или все пакеты проекта (нужно выполнять из директории проекта):
Чтобы узнать, вышли ли новые версии используемых в проекте пакетов
10. Как безопасно обновляться
Для того, чтобы обновиться до новых мажорных версий всех используемых пакетов, нужно глобально установить пакет
Теперь можно посмотреть, какие пакеты можно обновить (без внесения каких-либо изменений):
Убедившись, что обновление достаточно безопасно, можно выполнять следующую команду:
11. Глобальное обновление пакетов
Обновить один пакет или все пакеты, установленные глобально (можно выполнять из любого места):
12. Установка конкретной версии
Установка старой версии npm-пакета может понадобиться для решения проблем совместимости:
Узнать, какие версии некоего пакета имеются в npm-репозитории
13. Запуск скриптов
Запускать эти команды можно с помощью команды
14. Справка по менеджеру пакетов
У менеджера пакетов есть подробная справка по все командам
Для примера, посмотрим справку по команде install (в браузере)
Утилита npx
Существует множество утилит в виде пакетов (например, create-react-app ), которые изначально предполагалось устанавливать глобально. Запускать их из командной строки было очень просто — достаточно ввести имя утилиты в консоли. Однако мы уже знаем, что глобальная установка пакетов создает множество проблем.
Конечно, мы можем что-нибудь придумать, чтобы избежать проблем с глобальной установкой таких утилит. Например, установить пакет create-react-app глобально, запустить один раз из директории проекта, чтобы создать React-приложение — и сразу после этого удалить.
Если пакет cowsay не установлен глобально, подобная команда выдаст ошибку:
Утилита npx скачает пакет cowsay из npm-репозитория, установит во временную директорию и выполнит утилиту. Что важно — не загрязняя глобальное пространство. Так что при использовании npx необходимости в глобальной установке пакетов больше нет.
Управление версиями Node.js и NPM с помощью NVM
Наш прошлый перевод про новые функции 15-й версии Node.js был очень хорошо принят читателями «Хабра», поэтому сегодня мы решили продолжить тему и рассказать, как настроить NVM с версией Node.js 15 и NPM 7.
Версия Node.js 15 была выпущена 20 октября 2020 года. Она поставляется с npm 7 и множеством новых функций. Вы уже успели опробовать новую версию?
Но подождите минутку! Node.js 15 и npm 7 содержат критические изменения. Не повредит ли тогда обновление существующим проектам?
Теоретически может повредить!
К счастью, у нас есть NVM (Node Version Manager), который избавит нас от этой опасности. Давайте детально рассмотрим данный инструмент, чтобы без проблем обновить версии node.js и npm.
Установка NVM
nvm управляет версиями node.js и npm. Он устанавливается для конкретного пользователя и может быть вызван отдельно для каждой оболочки. nvm работает с любой POSIX-совместимой оболочкой (sh, dash, ksh, zsh, bash), в том числе на платформах: unix, macOS и windows WSL.
nvm можно установить с помощью команд curl или wget:
Скрипт install.sh клонирует репозиторий nvm в
/.nvm и пытается добавить исходные строки из приведенного ниже фрагмента в нужный файл профиля (
/.bash_profile мы видим, что строки добавлены:
Использование NVM
Итак, мы установили nvm. Теперь используем данную команду для установки последней версии node.js:
Также мы можем указать нужную версию для установки. Семантический формат версии определяется SemVer:
Если указанная версия уже была установлена, она не переустанавливается:
Мы можем вывести на экран все установленные версии:
nvm use заменяет текущую версию:
Данная команда позволяет получить последнюю поддерживаемую версию npm для текущей версии Node.js:
nvm use устанавливает нужную версию только для текущей оболочки. Если вы измените оболочку, только что обновленная версия node.js будет потеряна.
Как сделать определенную версию Node.js постоянной?
Версия по умолчанию — такая версия, которая распространяется на все оболочки.
Команда nvm alias позволяет установить версию по умолчанию.
Мы можем проверить текущую версию с помощью следующей команды:
ls-remote выводит на экран все доступные версии, но будьте готовы к очень длинному списку.
Обратим внимание, что название версии в сокращенной форме значительно сокращает весь список.
Указанную версию Node.js можно использовать непосредственно для запуска приложений:
Если вам нужно больше nvm-команд, запустите команду help :
Обновление NVM
Обновляем до версии 0.37.2.
Как указано в выводе, нам нужно закрыть и снова открыть терминал, чтобы использовать новую версию:
По умолчанию nvm ls показывает следующие цвета:
Установим новые цвета:
nvm ls отображает вывод с новыми цветами:
Как проверить версию node js в консоли
Руководство по Node.js, часть 5: npm и npx
Сегодня, в пятой части перевода руководства по Node.js, мы завершим разбор возможностей npm, в частности, коснёмся таких вопросов, как выяснение установленных версий npm-пакетов, установка старых версий пакетов, обновление зависимостей, локальная и глобальная деинсталляция пакетов. Здесь же мы поговорим и об npx.
Выяснение версий установленных npm-пакетов
Для того чтобы узнать версии всех установленных в папке проекта npm-пакетов, включая их зависимости, выполните следующую команду:
В результате, например, может получиться следующее:
То же самое можно узнать и просмотрев файл package-lock.json проекта, но древовидную структуру, которую выводит вышеописанная команда, удобнее просматривать.
Для того чтобы получить подобный список пакетов, установленных глобально, можно воспользоваться следующей командой:
Вывести только сведения о локальных пакетах верхнего уровня (то есть, тех, которые вы устанавливали самостоятельно и которые перечислены в package.json ) можно так:
В результате, если, например, устанавливали вы только пакет cowsay, выведено будет следующее:
Для того чтобы узнать версию конкретного пакета, воспользуйтесь следующей командой:
В результате её выполнения получится примерно следующее:
Эта команда подходит и для выяснения версий зависимостей установленных вами пакетов. При этом в качестве имени пакета, передаваемого ей, выступает имя пакета-зависимости, а вывод команды будет выглядеть следующим образом:
Запись о пакете-зависимости в этой структуре будет выделена.
Если вы хотите узнать о том, каков номер самой свежей версии некоего пакета, доступного в npm-репозитории, вам понадобится команда следующего вида:
В ответ она выдаёт номер версии пакета:
Установка старых версий npm-пакетов
Установка старой версии npm-пакета может понадобиться для решения проблем совместимости. Установить нужную версию пакета из npm можно, воспользовавшись следующей конструкцией:
В случае с используемым нами в качестве примера пакетом cowsay, команда npm install cowsay установит его самую свежую версию (1.3.1 на момент написания этого материала). Если же надо установить его версию 1.2.0, воспользуемся такой командой:
Указывать версии можно и устанавливая глобальные пакеты:
Если вам понадобится узнать о том, какие версии некоего пакета имеются в npm, сделать это можно с помощью такой конструкции:
Вот пример результата её работы:
Обновление зависимостей проекта до их самых свежих версий
Когда вы устанавливаете пакет командой вида npm install
Кроме того, устанавливая некий пакет, npm находит и устанавливает его зависимости.
В package-lock.json так же будут внесены сведения об этом пакете. Вот его фрагмент:
Для того чтобы узнать, вышли ли новые версии используемых в проекте пакетов, можно воспользоваться следующей командой:
Вот результаты выполнения этой команды для проекта, зависимости которого давно не обновлялись:
Анализ устаревших зависимостей проекта
Для того чтобы обновиться до новых мажорных версий всех используемых пакетов, глобально установите пакет npm-check-updates :
Затем запустите утилиту, предоставляемую им:
Локальная или глобальная деинсталляция пакетов
Для того чтобы деинсталлировать пакет, ранее установленный локально (с использованием команды install
), выполните команду следующего вида:
При выполнении подобной команды текущая папка значения не имеет.
О выборе между глобальной и локальной установкой пакетов
Когда и почему пакеты лучше всего устанавливать глобально? Для того чтобы ответить на этот вопрос, вспомним о том, чем различаются локальная и глобальная установка пакетов:
Итак, какой же способ установки пакетов лучше всего использовать?
В общем случае, все пакеты следует устанавливать локально. Благодаря этому, даже если у вас имеются десятки Node.js-проектов, можно обеспечить, при необходимости, использование ими различных версий одних и тех же пакетов.
Обновление глобального пакета приводит к тому, что все проекты, в которых он применяется, будут использовать его новый релиз. Несложно понять, что это, в плане поддержки проектов, может привести к настоящему кошмару, так как новые релизы некоторых пакетов могут оказаться несовместимыми с их старыми версиями.
Если у каждого проекта имеется собственная локальная версия некоего пакета, даже при том, что подобное может показаться пустой тратой ресурсов, это — очень небольшая плата за возможность избежать негативных последствий, которые могут быть вызваны несовместимостью новых версий пакетов, обновляемых централизованно, с кодом проектов.
Пакеты следует устанавливать глобально в том случае, когда они представляют собой некие утилиты, вызываемые из командной строки, которые используются во множестве проектов.
Подобные пакеты можно устанавливать и локально, запуская предоставляемые ими утилиты командной строки с использованием npx, но некоторые пакеты, всё же, лучше устанавливать глобально. К таким пакетам, которые вам, вполне возможно, знакомы, можно отнести, например, следующие:
О зависимостях проектов
Когда пакет следует рассматривать как обычную зависимость проекта, необходимую для обеспечения его функционирования, а когда — как зависимость разработки?
При установке пакета с помощью команды вида npm install
Зависимости разработки — это пакеты, которые нужны в процессе разработки проекта, в ходе его обычного функционирования они не требуются. К таким пакетам относятся, например инструменты тестирования, Webpack, Babel.
Утилита npx
Сейчас мы поговорим об одной весьма мощной команде, npx, которая появилась в npm 5.2. Одной из её возможностей является запуск исполняемых файлов, входящих в состав npm-пакетов. Мы уже рассматривали использование npx для запуска подобного файла из пакета cowsay. Теперь поговорим об этом подробнее.
▍Использование npx для упрощения запуска локальных команд
Node.js-разработчики опубликовали множество исполняемых файлов (утилит) в виде пакетов, которые предполагалось устанавливать глобально, что обеспечивало удобный доступ к их возможностям, так как запускать их из командной строки можно было, просто введя имя соответствующей команды. Однако работать в такой среде было весьма некомфортно в том случае, если требовалось устанавливать разные версии одних и тех же пакетов.
▍Выполнение утилит без необходимости их установки
В npx имеется ещё одна интереснейшая возможность, благодаря которой утилиты можно запускать без их предварительной установки. Полезно это, в основном, по следующим причинам:
Если же пакет cowsay не будет установлен глобально, подобная команда выдаст ошибку.
Утилита npx позволяет выполнять подобные команды без их установки. Выглядит это, в рамках нашего примера, так:
Такая команда сработает, но, хотя «говорящая» корова, по большому счёту, особой пользы не приносит, тот же самый подход можно использовать и для выполнения куда более полезных команд. Вот несколько примеров:
▍Запуск JavaScript-кода с использованием различных версий Node.js
Это позволяет отказаться от использования инструментов наподобие nvm или других менеджеров версий Node.js.
▍Запуск произвольных фрагментов кода, доступных по некоему адресу
Npx позволяет запускать не только код, опубликованный в npm. В частности, если у вас есть ссылка на некий фрагмент кода (скажем, опубликованного на GitHub gist), запустить его можно так:
Конечно, при выполнении подобного кода нельзя забывать о безопасности. Npx даёт в руки разработчика большие возможности, но они означают и большую ответственность.
▍Итоги
Сегодня мы поговорили о некоторых полезных механизмах npm и об использовании npx. На данном этапе у вас должно сложиться базовое понимание устройства npm и методов работы с этим пакетным менеджером. Если вы хотите более глубоко изучить npm — обратитесь к странице документации проекта и побольше экспериментируйте.
Что такое Node JS. Начало работы¶
Node.js представляет среду выполнения кода на JavaScript, которая построена на основе движка JavaScript Chrome V8, который позволяет транслировать вызовы на языке JavaScript в машинный код. Node.js прежде всего предназначен для создания серверных приложений на языке JavaScript. Хотя также существуют проекты по написанию десктопных приложений (Electron) и даже по созданию кода для микроконтроллеров. Но прежде всего мы говорим о Node.js, как о платформе для создания веб-приложений.
Node.js является открытым проектом, исходники которого можно посмотреть на github.com.
Установка¶
Для загрузки перейдет на официальный сайт https://nodejs.org/en/. На главной странице мы сразу увидим две возможные опции для загрузки: самая последняя версия NodeJS и LTS-версия.
Версии node.js для других операционных систем наряду с исходниками можно найти по адресу https://nodejs.org/en/download/
Инструменты разработки¶
Для разработки под Node JS достаточно простейшего текстового редактора, в частности, Notepad++. Также можно использовать более продвинутые редакторы типа Atom, Sublime, Visual Studio Code, либо среды разработки, которые поддерживают работу с Node.JS, например, Visual Studio или WebStorm.
После установки NodeJS нам становится доступным такой инструмент как REPL. REPL (Read Eval Print Loop) представляет возможность запуска выражений на языке JavaScript в командной строке или терминале.
Или используем какую-нибудь функцию JS:
Можно определять свои функции и затем их вызывать, например, возведение числа в квадрат:
Если мы введем что-то неправильно, то REPL укажет об ошибке:
Выполнение файла¶
Node.js. Утилиты npm и npx
Утилита npm — это менеджер пакетов, который входит в состав Node.js. Пакетом называется один или несколько js-файлов, представляющих собой какую-то библиотеку или инструмент. Менеджер пакетов предназначен для скачивания пакетов из облачного сервера, либо для загрузки (публикации) пакетов на этот сервер.
1. Инициализация проекта
Для создания нового проекта нужно создать директорию проекта, перейти в нее и выполнить команду
2. Файл package-lock.json
3. Установленные пакеты
Получить список всех установленных в директории проекта npm-пакетов можно с помощью команды
Дополнительная опция —all команды list выводит все пакеты в виде дерева
Получить список всех установленных глобально npm-пакетов (см.ниже) можно с помощью команды
4. Подробная информация о пакете
Посмотреть подробную информацию о пакете, доступного через npm-репозиторий
Получить информацию из npm-репозитория о последней доступной версии пакета
5. Локальная установка пакетов
Установить все пакеты из секций dependencies и devDependencies файла package.json :
Установить все пакеты из секции dependencies файла package.json (для production сервера)
Установить пакет package-name и добавить в секцию devDependencies файла package.json :
Установить пакет package-name и добавить в секцию dependencies файла package.json :
6. Локальное удаление пакетов
Удалить пакет package-name и удалить его из секции devDependencies файла package.json :
Удалить пакет package-name и удалить его из секции dependencies файла package.json :
7. Глобальная установка пакета
По умолчанию npm будет устанавливать все пакеты в локальной директории, в которым мы сейчас работаем (директория проекта). Если нужно, чтобы пакет был доступен всем приложениям, его нужно установить глобально. Но это не лучшее решение — разные проекты могут требовать разные версии одного пакета. Глобально установленный пакет будет нормально работать в одном проекте и вызывать ошибку в другом.
8. Глобальное удаление пакета
Так что если из-за глобально установки пакета возникли трудности — можно удалить его с помощью команды
9. Локальное обновление пакетов
Обновить один пакет или все пакеты проекта (нужно выполнять из директории проекта):
Чтобы узнать, вышли ли новые версии используемых в проекте пакетов
10. Как безопасно обновляться
Для того, чтобы обновиться до новых мажорных версий всех используемых пакетов, нужно глобально установить пакет
Теперь можно посмотреть, какие пакеты можно обновить (без внесения каких-либо изменений):
Убедившись, что обновление достаточно безопасно, можно выполнять следующую команду:
11. Глобальное обновление пакетов
Обновить один пакет или все пакеты, установленные глобально (можно выполнять из любого места):
12. Установка конкретной версии
Установка старой версии npm-пакета может понадобиться для решения проблем совместимости:
Узнать, какие версии некоего пакета имеются в npm-репозитории
13. Запуск скриптов
Запускать эти команды можно с помощью команды
14. Справка по менеджеру пакетов
У менеджера пакетов есть подробная справка по все командам
Для примера, посмотрим справку по команде install (в браузере)
Утилита npx
Существует множество утилит в виде пакетов (например, create-react-app ), которые изначально предполагалось устанавливать глобально. Запускать их из командной строки было очень просто — достаточно ввести имя утилиты в консоли. Однако мы уже знаем, что глобальная установка пакетов создает множество проблем.
Конечно, мы можем что-нибудь придумать, чтобы избежать проблем с глобальной установкой таких утилит. Например, установить пакет create-react-app глобально, запустить один раз из директории проекта, чтобы создать React-приложение — и сразу после этого удалить.
Если пакет cowsay не установлен глобально, подобная команда выдаст ошибку:
Утилита npx скачает пакет cowsay из npm-репозитория, установит во временную директорию и выполнит утилиту. Что важно — не загрязняя глобальное пространство. Так что при использовании npx необходимости в глобальной установке пакетов больше нет.