Команды для работы с NPM. Введение в пакетный менеджер NPM для начинающих Удаление локальных пакетов

n pm. это менеджер пакетов JavaScript, который может быть использован для установки, совместного использования и распространения кода, а также для управления зависимостями в ваших проектах. Он полностью написан на JavaScript, как вдохновение от других подобных проектов, как PEAR для PHP или CPAN для Perl. На этом уроке мы покажем вам, как установить npm на Ubuntu 16.04 в качестве операционной системы.

Самое первое, что вам нужно сделать, это и обновить программное обеспечение системы до последней доступной версии. Вы можете сделать это с помощью следующей команды:

Sudo apt-get update && sudo apt-get -y upgrade

Процесс обновления может занять от нескольких секунд до нескольких минут в зависимости от программного обеспечения, которое должно быть обновлено. После того, как ваша система находится в актуальном состоянии, вы можете продолжить.

npm поставляется в комплекте с Node.js, поэтому установить NPM вам нужно только если установили Node.js на вашем . Чтобы установить Node.js 4.x LTS на Ubuntu 16.04 , выполните следующие команды:

Curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash - sudo apt-get install -y nodejs

В качестве альтернативы, для установки Node.js 6.x на Ubuntu 16.04 , которая является текущей версии Node.js, выполните следующие команды:

Curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash - sudo apt-get install -y nodejs

Чтобы убедиться, что установка прошла успешно, вы можете проверить версию npm:

Выход должен быть аналогичен приведенному ниже:

# npm -v 2.15.9

Хороший способ начать использовать npm, чтобы прочитать справочную страницу npm или документацию npm. Чтобы проверить страницу npm справки, введите следующую команду:

Npm help

Вот страница npm help:

# npm help Usage: npm where is one of: access, add-user, adduser, apihelp, author, bin, bugs, c, cache, completion, config, ddp, dedupe, deprecate, dist-tag, dist-tags, docs, edit, explore, faq, find, find-dupes, get, help, help-search, home, i, info, init, install, issues, la, link, list, ll, ln, login, logout, ls, outdated, owner, pack, ping, prefix, prune, publish, r, rb, rebuild, remove, repo, restart, rm, root, run-script, s, se, search, set, show, shrinkwrap, star, stars, start, stop, t, tag, team, test, tst, un, uninstall, unlink, unpublish, unstar, up, update, upgrade, v, version, view, whoami npm -h quick help on npm -l display full usage info npm faq commonly asked questions npm help search for help on npm help npm involved overview Specify configs in the ini-formatted file: /root/.npmrc or on the command line via: npm --key value Config info can be viewed via: npm help config [email protected] /usr/lib/node_modules/npm

Документация npm доступна на

  • Перевод

npm - это пакетный менеджер node.js . С его помощью можно управлять модулями и зависимостями.
Небольшая шпаргалка всех моих любимых команд npm:

Установка npm

Обновление npm

Есть несколько способов чтобы обновить npm. Я предпочитаю:
curl https://npmjs.org/install.sh | sh
или
npm install npm -g

Поиск пакетов в npm

npm search hook.io
Подсказка: Можно также использовать search.npmjs.org
Вторая подсказка: Для поиска необходимо знать имя нужного пакета (всё прекрасно ищет по любому слову как в имени пакета, так и в его описании, может неправильно перевёл?)

Просмотр информации о пакете

npm view hook.io

Локальная установка пакетов

Для демонстрации возьмём пакет http-server.
http-server is a package we"ve written which provides an easy to use wrapper around node"s core http.Server class. This module makes for a good example, since it"s API provides both a CLI binary and a requirable node.js module.
http-server - пакет, который мы написали, предоставляет более простой интерфейс в использовании базового модуля http.Server из node.js. Этот модуль хороший пример использования API как для бинарного CLI, так и для подключаемого модуля node.js.
npm install http-server
Так мы установим http-server в нашей рабочей директории.
Вы увидите новую папку в node_modules. Сейчас можете не обращать на это внимание.

Установка пакета в наше приложение

mkdir mynewapp/ cd mynewapp npm install http-server touch test.js
test.js
var HTTPServer = require("http-server"); var httpServer = new HTTPServer({ root: "./public" }); httpServer.start();
запустим скрипт
node test.js
Обратите внимание, как мы делаем: require("http-server")? Что это за магия? (автор молодец)
http-server не является базовым модулем node.js. Этот пакет мы только что установили из npm. Node.js и npm взаимодействуют и автоматически подключают наши локальные модули из node_modules директории.

Понимание разницы между глобальной и локальной установкой

По умолчанию npm будет устанавливать все пакеты в локальном каталоге, в которым вы сейчас работаете. Это правильно. Это может показаться немного запутанным, если вы раньше работали с предыдущими системами управления пакетами.
Например: mkdir anotherapp/ cd anotherapp/ touch test.js
test.js
var HTTPServer = require("http-server");
теперь запустим наш скрипт
node test.js
мы получим эту ошибку:
node.js:134 throw e; // process.nextTick error, or "error" event on first tick ^ Error: Cannot find module "http-server" at Function._resolveFilename (module.js:326:11) at Function._load (module.js:271:25) at require (module.js:355:19) at Object. (/Users/maraksquires/dev/nodeapps/anotherapp/test.js:1:80) at Module._compile (module.js:411:26) at Object..js (module.js:417:10) at Module.load (module.js:343:31) at Function._load (module.js:302:12) at Array. (module.js:430:10) at EventEmitter._tickCallback (node.js:126:26)
Это вполне логично, мы установили http-server локально в "/mynewapp/", а не в "/anotherapp/".
Есть два решения в этой ситуации:
а) Установить ещё раз пакет, но локально в наше новое приложение
cd anotherapp/ npm install http-server
б) Установить пакет глобально
npm install http-server -g

Глобальная установка пакетов

Если вы хотите чтобы пакет был доступен всем приложениям, его нужно установить глобально:
npm install http-server -g
Флаг -g означает, что http-server должен быть установлен глобально и быть доступными для всех приложений.
Теперь мы можем вызывать его require("http-server") в любом нашем приложении.

Кроме того, поскольку http-server пакет имеет свой исполняемый файл, то этот файл также будет установлен как исполняемый http-server и доступен в командах.
Теперь вы можете просто запустить команду:
http-server

Удаление локально установленного пакета

npm uninstall http-server

Удаление глобально установленного пакета

npm uninstall http-server -g

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

npm install [email protected]

Установка модуля с Github

Важно. В некоторых случаях будут патчи, форки или ветви, которые вы хотите использовать, но которые еще не были опубликованы в npm. К счастью исходные коды для большинства npm модулей также доступна на www.github.com
git clone git://github.com/nodeapps/http-server.git cd http-server/ npm link
Теперь наша клонированная версия http-server связана локально.

Связи любых пакетов локально

Если у вас есть отдельный каталог содержащий пакет npm, то можно создать локальную связь для него. Это удобно в ситуациях, когда мы не хотим опубликовать наш пакет в хранилище npm.
cd http-server/ npm link
На нашу локальную версию http-server создана «связана» для нашей локальной машины. (связь создаётся как «copy-paste», с начало нужно перейти в нужный катало и сделать «copy», потом перейти в нужный каталог и сделать «paste». Так вот сейчас мы изучили как делается «copy», а ниже будет про «paste» этого модуля)

Связи локальных пакетов для нескольких приложений

Как мы видели ранее npm устанавливает пакеты в локальный каталог по умолчанию. Так вот npm ссылка(связь) работает почти так же.
mkdir newapp/ cd newapp/ npm link http-server
Мы указываем, что теперь создали связь из http-server в наше новое приложение newapp. Если бы мы не выполнили npm link http-server, то получили бы ошибку об отсутствующем модуле. (а вот наш и «paste» о чём я писал выше, теперь вам должна быть понятна логика создания связей)

Отмена связи между пакетами приложения

cd newapp/ npm unlink http-server
(здесь мы просто отменяем наш «paste» для этого приложения)

В этом руководстве я расскажу: как установить вебпак (webpack), его зависимости и настроить объединение и минимизацию скриптов через него.
Это первая часть серии "Webpack в NetBeans проекте".

1. Зачем всё это нужно:

1. Уже несколько раз в проектах мне понадобилось из нескольких скриптов объединять в один. Причина такого разделения - каждый скрипт выполняет свою задачу, а для уменьшения http-запросов при релизе плагина (или дополнения к WordPress плагину WP-Recall) - нужно все объединить в один. Руками это делать не хочется.

2. Я люблю комментировать js (не то чтобы маниакально, но в помощь себе - когда вернусь к нему через длительное время), а комментарии в js - это не каменты в php - в скрипте они ложатся мертвым грузом в файле и увеличивают его размер. А этот файл грузится во фронте.

3. Кто-то не хочет чтобы js был прочитан человеком. Ну мало ли... На помощь приходит "Обфуска́ция" (от лат. obfuscare - затенять, затемнять; и англ. obfuscate - делать неочевидным, запутанным, сбивать с толку) - приведение исходного текста или исполняемого кода программы к виду, сохраняющему её функциональность, но затрудняющему анализ, понимание алгоритмов работы и модификацию при декомпиляции.

Идеальное решение:

Пишешь скрипты в разных файлах;
Комментируешь их "от души";
Не скупишься на названия переменным (они должны быть говорящими).

При релизе:

Объединяешь автоматически указанные файлы в один;
Автоматически происходит минимизация (удаление пробелов, переносов и комментариев) - скрипт идет в одну строку;
Автоматически файл обфусцируется - имена переменных сокращаются.

Всё это ведет к снижению веса файла. Что в итоге сказывается на более быстрой загрузке файла.

Посмотрите на пример (все скрины кликабельны):
Результат веса файла ~2 раза

Ну и время "расти дальше" настало. Выбор пал на webpack. Но для того чтобы его поставить придется установить терминал Cygwin в NetBeans (далее: нетбинс, ide), поставить node.js с npm (node package manager) внутри, а затем только поставить сам вебпак.
На этом приключение не закончится - в процессе запуска команды $ npm run build придется доставить webpack-command и webpack-cli - т.к. в терминале вылезет сообщение что их нет. Двинуться без этих пакетов дальше будет нельзя.

2. Глобальные установки и настройки:

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

2.1. Ставим Cygwin терминал:

В ide NetBeans есть возможность работы через терминал.
Открываем любой свой проект и вот здесь он находится:
"Сервис" -> "Открыть в терминале"

Откроем терминал

При открытии терминала, ide попросит вас установить его. Вы увидите сообщение вроде этого:

установите Cygwin и перезапустите ide

Cygwin - набор утилит для работы windows через unix команды. Пакет также содержит и терминал.

На эту тему мне интересно решить еще пару-тройку вопросов:
Минимизация и объединение css через webpack;
Автопрефиксы на основе caniuse сервиса;
И конечно же компиляция jsx через babel.

Все конечно же через нетбинс. Поэтому этот урок будем считать первым из серии.

p.s. если вы заметили неточность или опечатку, у вас появились вопросы или вы хотите высказаться по текущей статье - добро пожаловать в комментарии.

Если вы работаете с webpack, но в другой ide - поделитесь своими впечатлениями в комментариях. Если еще не используете, но присматриваетесь - тоже напишите с какой ide вы будете настраивать тесную работу.

JavaScript все крепче и крепче закрепляет себя на позиции языка go-to типа для веб-разработчиков. Front-end разработчики используют JavaScript для того, чтобы добавить интерактивности пользователям, а так же напрямую общаться с back-end сервисами посредством AJAX.

JavaScript предоставляет огромное количество возможностей. Вы можете спокойно улучшать ваши навыки и при этом не волноваться, что не сможете разрабатывать полноценные веб-приложения. Ключевым компонентом Node.js является революция Сhrome версии V8 JavaScript, которая позволяет использовать JavaScript даже на серверной части.

Node.js так же может быть использован для написания desktop приложений, а так же для разработки инструментов, которые делают процесс разработки веб-приложений еще быстрее. Например, с помощью Node.js вы можете превратить CoffeeScript в JavaScript или SASS в CSS, а так же многое другое.

NPM помогает устанавливать удобным образом разные модули для Node.js.

Предисловие

Node — не является обычной desktop программой. Он не установится как Word или Photoshop и у вас не появится ярлыка на рабочем столе. Им можно воспользоваться только с помощью консольные инструкций (с которыми вы хотя бы чуть-чуть должны быть знакомы). В первое время вам будет казаться, что это не удобно, но в скором времени вы привыкните и все встанет на свои места.

Описание установки

Установка Node.js и NPM очень простая. Все что вам нужно сделать — это зайти на официальный сайт разработчика, скачать файл и установить его на своем компьютере.

Этапы установки

Тестируем

Для того, чтобы убедиться что все было правильно установлено следуйте три простых этапа ниже.

Тестируем Node.js. Откройте Windows консоль и введите node -v .

Тестируем NPM. Откройте Windows консоль и введите npm -v .

Создайте файл. Создайте любой файл, я назову его hello.js и введите console.log("Node.js is installed"); , после чего с помощью node команды, я вызову файл hello.js: node hello.js — это должно вам вывести «Node.js is installed.».

Как обновить Node.js?

Чтобы его обновить, вам нужно снова скачать установщик и повторить весь процесс с самого начала.

Современная разработка очень тесно связана с использованием Node JS. В свою очередь Node JS используется как оболочка для работы с NPM и его пакетами (всем известная папка node_modules).

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

Инструкции по NPM

И всё таки думаю что стоит для начала упомянуть пару важных консольных команд для Node JS.

Как посмотреть список всех команд Node.js

Чтобы посмотреть список всех команд доступных в Node.js, для этого нужно ввести в консоли команду:

Как узнать версию установленного Node.js

Для этого есть команда node --version или короткий вариант команды этой же команды node -v . Так как краткость - сестра таланта, я пользуюсь командой:

Команды для NPM и работы с пакетами, модулями

Если расписывать команды NPM-а, то так же начнём с того как в консоли вывести все доступные команды нпма.

Cписок всех доступных команд пакетного менеджера (npm) выведится если в консоли ввести команду npm help или сокращённый вариант npm -h:

Команда npm -h вывалит в консоли такой список доступных команд:

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 help COMANDA , где COMANDA - это название команды из списка.

Например посмотреть инструкции для обновления:

Npm help update

В установленном по умолчанию браузере откроется страница с инструкциями по данной команде. Инструкции находятся локально и не требуют подключения к интернету.

Как узнать версию NPM

Чтобы узнать установленную версию npm, нужно ввести в терминале команду npm --version или сокращённый вариан данной команды npm -v:

Как обновить NPM

В отличии от Node.js, NPM знает как обновить себя! Чтобы обновить свой NPM до последней версии, вводим в терминале такую команду:

Npm install npm@latest -g

Npm update npm -g

Инициализация пакетов NPM

Инициализация пакетов - это процесс быстрой установки пакетов NPM-а, которые прописаны в файле package.json

Команда npm init создаст файл package.json или установит прописанные пакеты из файла package.json если он уже создан.

Npm init

Работа с NPM-пакетами

Установить пакеты из файла package.json:

Npm install

npm скачает и установит все пакеты указанные в файле package.json

Посмотреть список установленных пакетов:

Npm list --depth=0

Посмотреть список установленных пакетов, которые требуют обновления:

Npm outdated --depth=0

Список глобально установленных пакетов требующих обновления:

Npm outdated --depth=0 -g

Команда npm install package - позволяет установить любой пакет по его имени. Если при этом к команде добавить префикс -g пакет будет установлен глобально на весь компьютер.

Npm install PACKAGE

Npm install PACKAGE --save-dev

Глобальная установка пакета:

Npm install PACKAGE -g

Удалить пакет:

npm r PACKAGE

Удалить глобально установленный пакет:

npm rm PACKAGE -g

Обновить пакеты:

npm up

И в заключение, если вы пользуетесь конролем версий Git, то незабудьте добавить в файл .gitignore исключение для папки node_modules , чтобы гит не индексировал файлы из этой папки. Для этого создайте файл .gitignore если он у вас ещё не создан и пропишите в нём отдельной строкой:

Node_modules/

Обновление пакетов NPM при изменении мажорной версии

Если у пакета NPM сменилась версия на мажорную, то есть была изменена первая цифра в версии пакета (например установлена версия пакета 4.19.1, а последняя версия 5.3.0), то она не обновится командой npm up . Это сделано в целях безопасности.

Для обновления мажорной версии есть такая команда:

Npm i -g npm-check-updates && ncu -a && npm i

В итоге будут обновлены все пакеты.

Делайте такое обновление только в случае если вы уверены и понимаете что делаете. Мажорная версия несёт изменения для которых есть изменения в настройках.

Посмотрите это видео, где есть понятное объяснение по версиям пакетов NPM: