neretin-trike / clicommand.md
Clone via HTTPS Clone with Git or checkout with SVN using the repository’s web address.
Learn more about clone URLs
Команды терминала, node.js и yarn
pwd - вывести рабочий каталог mkdir [имя папок] - создать папки rm -r [имя папок] - удалить папки touch [имя файлов] - создать файлы touch [имя папки]/ <[имя файла],[. ]>- создать файлы внутри указанной папки cd .. | [имя папки] - подняться на уровень вверх | перейти в дерикторию ls -*a -*l - вывод файлов и папок в текущей директории *вместе со скрытыми *и информацией о размере и дате создания echo ['текст'] >> [имя файла] - создать файл с указанным текстом cat [имя файла] - вывести содержимое файла в консоль
npm init -*y - инициировать проект *с ответом "да" на все вопросы npm version - отобразить информацию о Node.JS npm prefix -*g - отобразить путь расположения *глобальных пакетов npm *run [название скрипта] - запуск скрипта npm install | i [название пакетов] - установить пакеты npm uninstall | un [название пакетов] - удалить пакеты npm list --depth=[уровень] -*g - вывести список установленных пакетов *в глобальный путь npm list [название пакетов] - отбразить версию пакетов npm update - обновить все пакеты Ключи для комманд install, uninstall и update: -g - установить, удалить и обновить пакет глобально --save | -S - установить, удалить и обновить пакет в зависимость dependencies --save-dev | -D - установить, удалить и обновить пакет в зависимость devDependencies
yarn init -*y - инициировать проект *с ответом "да" на все вопросы yarn --version - отобразить версию yarn'а yarn *install - уставить все пакеты и зависимости yarn *run [название скрипта] - запуск скрипта yarn add [навзание пакетов]*@[версия] --*offline - установить пакеты *определенной версии *офлайн yarn remove [название пакетов]*@[версия] - удалить пакеты *определенной версии yarn check - проверяет, что зависимости в package.json совпадают с зависимостями в файле yarn.lock yarn list --depth=[уровень] - вывести список установленных пакетов yarn list --pattern [название пакетов] - отбразить версию пакетов yarn upgrade --*latest - полностью удалить и установить все пакеты *до последней версии Ключи для комманд add, remove и upgrade: global - установить, удалить и обновить пакет глобально --dev - установить, удалить и обновить пакет в зависимость devDependencies --peer - установить, удалить и обновить пакет в зависимость peerDependencies --optional - установить, удалить и обновить пакет в зависимость optionalDependencies
Лучший путь как переустановить Node.Js (Mac/Linux/Windows)
Один из простейших путей как установить Node.Js это пойти на официальный сайт, скачать установочный файл и установить его. Позже разработчики столкнулись с ситуацией, когда им нужно сменить версию Node.js на другую или обновить текущую версию.
Это все еще возможно — установить другую версию с официального сайта, но как много нод уже установлено в системе?
Может быть это хорошее время для удаления их всех и настроить возможность системе переключаться между нодами за секунды, всегда зная количество установленных версий и иметь возможность удалить любые из них одной простой командой.
Как удалить node modules через консоль
Кроме встроенных и кастомных модулей Node.js существует огромный пласт различных библиотек и фреймворков, разнообразных утилит, которые создаются сторонними производителями и которые также можно использовать в проекте, например, express, grunt, gulp и так далее. И они тоже нам доступны в рамках Node.js. Чтобы удобнее было работать со всеми сторонними решениями, они распространяются в виде пакетов. Пакет по сути представляет набор функциональностей.
Для автоматизации установки и обновления пакетов, как правило, применяется система управления пакетами или менеджеры. Непосредственно в Node.js для этой цели используется пакетный менеджер NPM (Node Package Manager). NPM по умолчанию устанавливается вместе с Node.js, поэтому ничего доустанавливать не требуется. Но можно обновить установленную версию до самой последней. Для этого в командной строке/терминале надо запустить следующую команду:
npm install npm@latest -g
Чтобы узнать текущую версию npm, в командной строке/терминале надо ввести следующую команду:
npm -v
Для нас менеджер npm важен в том плане, что с его помощью легко управлять пакетами.
Установка пакетов
Для установки пакета через npm применяется команда npm install , после которой указываются пакеты
npm install имя_пакета1 имя_пакета2 имя_пакетаN
В качестве демонстрации будем устанавливать пакет lodash . Lodash представляет собой библиотеку, которая позволяет манипулировать данными, в частности, массивами. Кому интересно, может подробнее узнать на официальном сайте библиотеки — https://lodash.com/.
Допустим, для проекта где-нибудь в файловой системе определим каталог app и перейдем в терминале/командной строке к папке проекта с помощью команды cd . Затем для установки Lodash в проект введем команду
npm install lodash
После установки express в папке проекта app появится подпапка node_modules , в которой будут хранится все установленные внешние модули. В частности, в подкаталоге node_modules/lodash будут располагаться файлы библиотеки Lodash.

Кроме того, при установке пакета в папку проекта добавляется файл package.json . После добавления lodash в нашем случае он будет иметь примерно следующий вид:
Файл package.json представляет собой объект-конфигурацию в формате json, где каждое свойство представляет отдельную секцию. Так, здесь определена секция «dependencies», которая хранит установленные пакеты. И здесь мы видим, что у нас установлен пакет «lodash», а версия пакета — «^4.17.21».
Также в проекте создан еще один файл — package-lock.json . Этот файл автоматически генерируется при любых операциях, в которых npm изменяет файл package.json и структуру каталогов/файлов в каталоге node_modules . Данный файл упрощает для npm управление пакетами.
После установке библиотеки lodash мы можем ее использовать. Так, определим в папке проекта файл app.js со следующим кодом:
const lodash = require("lodash") const people = ["Tom", "Sam", "Bob"]; const employees = ["Tom", "Alice", "Sam"]; // объединение массивов - в результате только уникальные значения const result1 = lodash.union(people, employees); console.log(result1); // [ "Tom", "Sam", "Bob", "Alice" ] // пересечение массивов - в результате только общие значения const result2 = lodash.intersection(people, employees); console.log(result2); // [ "Tom", "Sam" ]
Поскольку мы установили библиотеку lodash через npm, то мы можем получить соответствующий модуль через выражение require :
const lodash = require("lodash")
Затем мы можем обращаться к функциям этого модуля. Для демонстрации здесь применяется функция uninon , которая объединяет два массива (множества) и возвращает новое множество только с уникальными значениями. А функция intersection() также применяется к массивам, но возвращает множество, которое содержит только общие для всех массивов элементы.
В консоли запустим файл app.js командой node app.js :
c:\app> node app.js [ "Tom", "Sam", "Bob", "Alice" ] [ "Tom", "Sam" ] c:\app>
Если через какое-то время нам больше не нужен пакет, его можно удалить командой npm uninstall , которой передаются удаляемые пакеты
npm uninstall пакет1 пакет2 пакетN
Например, удалим ранее установленный lodash:
npm uninstall lodash
Если после удаления мы откроем папку node_modules , то увидим, что она пустая. И также изменится файл package.json — он будет содержать пустой объект:
Получение информации о пакете
С помощью команды npm info [пакет] можно получить информацию об определенном пакете. Например, получим информацию о пакете lodash:
c:\app> npm info lodash lodash@4.17.21 | MIT | deps: none | versions: 114 Lodash modular utilities. https://lodash.com/ keywords: modules, stdlib, util dist .tarball: https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz .shasum: 679591c564c3bffaae8454cf0b3df370c3d6911c .integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== .unpackedSize: 1.4 MB maintainers: - mathias - jdalton - bnjmnt4n dist-tags: latest: 4.17.21 published over a year ago by bnjmnt4n c:\app>
Здесь мы видим большой массив данных типа версии, лицензии, кто поддерживает, кто и когда опубликовал, размер пакета, домашнюю страницу.
Node.js + npm: как восстановить работу последнего и указать ему кастомный каталог для установки пакетов?
Первый вопрос это программа максимум, в целом меня устроит ответ и только лишь на второй, если вдруг никто не сможет ответить сразу на оба вопроса.
Отслеживать
Stanislav Belichenko
задан 18 июн 2017 в 2:10
Stanislav Belichenko Stanislav Belichenko
2,503 8 8 серебряных знаков 25 25 бронзовых знаков
Если запускать npm с ключом —verbose , то ничего подозрительного там не пишется? Возможно, будет понятно, на чем именно возникает затык.
18 июн 2017 в 7:39
@Yaant прошу прощения за предыдущий ответ, спросонья прочитал. В общем, реакция на npm —verbose аналогичная остальным — то есть никакой. Команда как бы начинает выполняться, но вывода никакого нет, можно только опять же прервать выполнение по Ctrl + C .
18 июн 2017 в 10:42
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
Ответ на второй вопрос найден: конфиг npm , по крайней мере та его часть, которая хранит переменную prefix , хранится по пути $HOME/.npmrc . Соответственно, удалив оттуда эту переменную с ее значением, работоспособность npm восстанавливается.
Ответ на первый вопрос: оказалось, что не нужно было брать значение устанавливаемой переменной в кавычки, в итоге в конфиге это выглядело вот так:
prefix="'C:\\Users\\Stas\\.phpstorm\\node.js\\4.4.0'"
Что и вводило в подвисшее состояние npm . Очевидно, что разработчикам данного инструмента было бы неплохо учесть такое и отбрасывать лишние кавычки, если они еще не сделали этого в более поздних версиях их инструмента или же самого Node.js .