Базовый курс npm
Для начала нам нужно установить Node.js, npm идёт вместе с ним. Затем нужно обновить версию npm, так как он обновляется несколько чаще, чем Node.js:
Проверить версию npm можно командой:
У меня вывело 4.5.0.
Установка пакетов npm
Существует два способа установки пакетов npm: локально и глобально.
Если вы хотите использовать пакет из своего модуля с помощью чего-нибудь вроде require от Node.js, то вам нужно установить пакет локально командой:
npm install
Эта команда создаст каталог «node_modules» в текущем рабочем каталоге и скачает туда указанный пакет.
Для проверки этой команды вы можете выполнить:
npm install lodash
Затем проверьте, что у вас появился каталог «node_modules» с подкаталогом «lodash».
Если у вас не было файла «package.json» в текущем каталоге, то устанавливается последняя версия, если же файл «package.json» присутствует, то устанавливается последняя версия, удовлетворяющая правилам в этом файле.
NodeJs基础教程【2021】| 6. 使用npm install / update / uninstall管理程序包 | 教你如何使用世界上最大软件注册平台,让你装备developer必备技能
Использование установленного пакета npm
После появления пакета в каталоге «node_modules» вы можете его использовать. Например, если вы создаёте модуль Node.js, то вы можете подключить и использовать его так:
JavaScript
var lodash = require ( ‘lodash’ ) ;
var output = lodash . without ( [ 1 , 2 , 3 ] , 1 ) ;
console . log ( output ) ;
JavaScript
node index . js
Использование файла «package.json»
Лучший способ управления локально установленными пакетами — это использование файла «package.json», который должен иметь как минимум name и version .
Поле name должно состоять из строчных букв английского алфавита, подчёркиваний и тире. Оно определяет имя вашего модуля.
Поле version определяет версию в формате x.x.x.
JavaScript
«name» : «my-awesome-package» ,
«version» : «1.0.0»
Создать «package.json» можно командой с консоли:
Эта команда проведёт вас через процесс создания «package.json» в стиле вопрос-ответ.
Зависимости от других пакетов
Для указания зависимости от других пакетов используются поля dependencies и devDependencies в «package.json», которые указывают зависимости для production среды и development соответственно. Для добавления зависимостей проще использовать флаги —save и —save-dev у npm install , которые сохраняют зависимость в «package.json» для production и development среды.
npm install <имя_пакета>—save
npm install <имя_пакета>—save-dev
Пример «package.json» с зависимостями:
package.json
JavaScript
«name» : «my_package» ,
«version» : «1.0.0» ,
«dependencies» : <
«my_dep» : «^1.0.0»
«devDependencies» : <
«my_test_framework» : «^3.1.0»
Идея версионирования: патчи, минорные и мажорные версии
Идея использования трёх чисел, разделённых точками, в качестве версии состоит в следующем (например, если текущий пакет 1.0.0):
npm install error #npm
- Патчи или исправления ошибок и незначительные изменения увеличивают последнее число (1.0.1).
- Минорные версии. Новые возможности, которые не ломают старый код увеличивают второе число (1.1.0).
- Мажорные версии. Изменения, ломающие совместимость со старым кодом увеличивают самое первое число (2.0.0).
При указании необходимой версии зависимости в «package.json» можно указывать диапазоны:
- 1.0, 1.0.x или ~1.0.4 будет использовать последнюю версию патча с исправлениями ошибок (для третьего варианта начиная с версии 1.0.4).
- 1, 1.x или ^1.0.4 будет использовать последнюю минорную версию.
- * или x всегда будет использовать последнюю версию.
Обновление зависимостей
Для обновления зависимостей в соответствии с правилами в файле «package.json» используйте команду:
npm update
Удаление зависимостей
Для удаления зависимости из каталога «node_modules» используйте команду:
npm uninstall
Для удаления зависимости из файла «package.json» используйте:
npm uninstall —save
npm uninstall —save-dev
Установка пакета npm глобально
Устанавливайте пакет глобально, если вы хотите его использовать как самостоятельную утилиту с командной строки:
npm install -g
Если вы получите ошибку EACCESS, то это значит, что у вас нет прав на изменение каталога, который npm использует для глобальных пакетов.
В этом случае вам нужно сделать одно из следующих:
1. Изменить права доступа к каталогу, который npm использует по умолчанию.
2. Изменить каталог по умолчанию для npm.
3. Установить node c помощью пакетного менеджера.
Обновление глобальных пакетов npm
Для обновления пакетов npm, установленных глобально, используйте команду:
Источник: urvanov.ru
NPM. Package.json. Установка модулей. Определение команд¶
Кроме встроенных и кастомных модулей Node.js существует огромный пласт различных библиотек и фреймворков, разнообразных утилит, которые создаются сторонними производителями и которые также можно использовать в проекте, например, express, grunt, gulp и так далее. И они тоже нам доступны в рамках Node.js. Чтобы удобнее было работать со всеми сторонними решениями, они распространяются в виде пакетов. Пакет по сути представляет набор функциональностей.
Для автоматизации установки и обновления пакетов, как правило, применяются систему управления пакетами или менеджеры. Непосредственно в Node.js для этой цели используется пакетный менеджер NPM (Node Package Manager). NPM по умолчанию устанавливается вместе с Node.js, поэтому ничего доустанавливать не требуется. Но можно обновить установленную версию до самой последней. Для этого в командной строке/терминале надо запустить следующую команду:
Чтобы узнать текущую версию npm , в командной строке/терминале надо ввести следующую команду:
npm -v
Для нас менеджер npm важен в том плане, что с его помощью легко управлять пакетами. К примеру, создадим на жестком диске новую папку modulesapp (В моем случае папка будет находиться по пути C:nodemodulesapp ).
Далее для примера установим в проект express . Express представляет легковесный веб-фреймворк для упрощения работы с Node.js. В данном случае мы не будем пока подробно рассматривать фреймворк Express, так как это отдельная большая тема. А используем его лишь для того, чтобы понять, как устанавливаются сторонние модули в проект.
Для установки функциональности Express в проект вначале перейдем к папке проекта с помощью команды cd . Затем введем команду
npm install express
После установки express в папке проекта modulesapp появится подпапка node_modules , в которой будут храниться все установленные внешние модули. В частности, в подкаталоге node_modules/express будут располагаться файлы фреймворка Express.
Далее определим файл простейшего сервера. Для этого в корневую папку проекта modulesapp добавим новый файл app.js :
// получаем модуль Express const express = require(‘express’) // создаем приложение const app = express() // устанавливаем обработчик для маршрута «/» app.get(‘/’, function (request, response) response.end(‘Hello from Express!’) >) // начинаем прослушивание подключений на 3000 порту app.listen(3000)
Первая строка получает установленный модуль express , а вторая создает объект приложения.
В Express мы можем связать обработку запросов с определенными маршрутами. Например, / — представляет главную страницу или корневой маршрут. Для обработки запроса вызывается функция app.get() . Первый параметр функции — маршрут, а второй — функция, которая будет обрабатывать запрос по этому маршруту.
И чтобы сервер начал прослушивать подключения, надо вызвать метод app.listen() , в который передается номер порта.
Запустим сервер командой node app.js :
И в адресной строке браузера введем адрес http://localhost:3000/ :
Файл package.json¶
Для более удобного управления конфигурацией и пакетами приложения в npm применяется файл конфигурации package.json . Так, добавим в папку проекта modulesapp новый файл package.json :
«name»: «modulesapp», «version»: «1.0.0» >
Здесь определены только две секции: имя проекта — modulesapp и его версия — 1.0.0 . Это минимально необходимое определение файла package.json . Данный файл может включать гораздо больше секций. Подробнее можно посмотреть в документации.
Далее удалим из проекта каталог node_modules . То есть в папке проекта modulesapp будут два файла app.js и package.json .
Теперь снова добавим express с помощью следующей команды:
npm install express —save
Флаг —save указывает, что информацию о добавленном пакете надо добавить в файл package.json .
И после выполнения команды, если мы откроем файл package.json , то мы увидим информацию о пакете:
«name»: «modulesapp», «version»: «1.0.0», «dependencies»: «express»: «^4.14.0» > >
Информация обо всех добавляемых пакетах, которые используются при запуске приложения, добавляется в секцию dependencies .
Файл package.json играет большую роль и может облегчить разработку в различных ситуациях. Например, при размещении в разных репозиториях нередко мы ограничены выделяемым дисковым пространством, тогда как папка node_modules со всеми загруженными пакетами может занимать довольно приличное пространство. В этом случае удобнее разместить основной код проекта без node_modules . В этом случае мы можем определить все пакеты в файле package.json , а затем для загрузки всех пакетов выполнить команду
npm install
Эта команда возьмет определение всех пакетов из секций dependencies и загрузит их в проект.
devDependencies¶
Кроме пакетов, которые применяются в приложении, когда оно запущено, например, express, то есть в состоянии «production», есть еще пакеты, которые применяются при разработке приложения и его тестировании. Такие пакеты добавляются в другую секцию — devDependencies . В вышеприведенном примере она не определена, но если бы мы добавили какой-нибудь grunt или gulp, то они бы были именно в секции devDependencies .
Например, загрузим в проект пакет jasmine-node , который используется для тестирования приложения:
npm install jasmine-node —save-dev
Флаг —save-dev указывается, что информацию о пакете следует сохранить в секции devDependencies файла package.json :
«name»: «modulesapp», «version»: «1.0.0», «dependencies»: «express»: «^4.14.0» >, «devDependencies»: «jasmine-node»: «^1.14.5» > >
Удаление пакетов¶
Для удаления пакетов используется команда npm uninstall . Например:
npm uninstall express
Эта команда удаляет пакет из папки node_modules , в то же время в файле package.json информация о данном пакете остается. Чтобы удалить информацию также и из package.json , применяется флаг —save :
npm uninstall express —save
Семантическое версионирование¶
При определении версии пакета применяется семантическое версионирование. Номер версии, как правило, задается в следующем формате major.minor.patch . Если в приложении или пакете обнаружен какой-то баг и он исправляется, то увеличивается на единицу число patch . Если в пакет добавляется какая-то новая функциональность, которая совместима с предыдущей версией пакета, то это небольшое изменение, и увеличивается число minor . Если же в пакет вносятся какие-то большие изменения, которые несовместимы с предыдущей версией, то увеличивается число major . То есть глядя на разные версии пакетов, мы можем предположить, насколько велики в них различия.
В примере с express версия пакета содержала, кроме того, дополнительный символ карет: ^4.14.0 . Этот символ означает, что при установке пакета в проект с помощью команды npm install будет устанавливаться последняя доступная версия от 4.14.0 . Фактически это будет последняя доступная версия в промежутке от 4.14.0 до 5.0.0 ( >=4.14.0 и
Команды npm¶
NPM позволяет определять в файле package.json команды, которые выполняют определенные действия. Например, определим следующий файл app.js :
let name = process.argv[2] let age = process.argv[3] console.log(‘name: ‘ + name) console.log(‘age: ‘ + age)
В данном случае мы получаем переданные при запуске приложению параметры.
И определим следующий файл package.json :
«name»: «modulesapp», «version»: «1.0.0», «scripts»: «start»: «node app.js», «dev»: «node app.js Tom 26» > >
Здесь добавлена секция scripts , которая определяет две команды. Вообще команд может быть много в соответствии с целями и задачами разработчика.
Первая команда называется start . Она по сути выполняет команду node app.js , которая выполняет код в файле app.js
Вторая команда называется dev . Она также выполняет тот же файл, но при этом также передает ему два параметра.
Названия команд могут быть произвольными. Но здесь надо учитывать один момент. Есть условно говоря зарезервированные названия для команд, например, start , test , run и ряд других. Их не очень много. И как раз первая команда из выше определенного файла package.json называется start . И для выполнения подобных команд в терминале/командной строке надо выполнить команду
npm [название_команды]
Например, для запуска команды start
npm start
Команды с остальными названия, как например, dev в вышеопределенном файле, запускаются так:
npm run [название_команды]
Например, последовательно выполним обе команды:
Источник: nodejsdev.ru
Автоматизация вёрстки. npm, package.json
Автоматизация — передача рутинных задач разработки, которые могут быть выполнены вручную, в руки компьютера. Автоматизация переводит файлы, написанные и понятные разработчику, в сжатые коды, понятные браузеру, и формирует финишный пакет приложения.
Что дает автоматизация. Автоматизация экономит время разработчика, помогает найти и исправить ошибки. При этом создаются коды, которые экономят время браузера и ускоряют загрузку сайта.
Какие задачи могут быть автоматизированы. Например, минификация файлов (html, css, js), сжатие изображений, получение изображения определенных форматов (webp), сборка файла sprite.svg , сборка пакета приложения.
С помощью каких инструментов осуществляется автоматизация. Сообществом программистов созданы целые библиотеки программ для автоматизации. Также есть системы для лёгкого доступа к этим библиотекам и использования их в разработке новых программ и приложений. Одной из таких систем является система Node.js.
Что такое Node.js
Node.js — интерпретатор языка JavaScript, который часто используют для автоматизации сборки проектов. Кроме Node.js нам понадобятся менеджер пакетов npm и менеджер задач Gulp.
Менеджер пакетов Npm (node package manager) устанавливается автоматически при установке на компьютер Node.js. Npm работает в консоли и выполняет команды, которые мы вводим в соответствии с синтаксисом, предлагаемым Node.js
Что делает npm для автоматизации
- Устанавливает пакеты программ из сторонних библиотек на наш компьютер прямо внутрь проекта.
- С помощью команд в консоли передает для выполнения на нашем компьютере задачи, написанные нами для менеджера задач Gulp.
- По нашему желанию переносит/публикует пакеты с нашего компьютера в библиотеку
Но как npm узнаёт, какие программы мы хотим использовать в нашей работе и как их скачать на наш компьютер? Есть два пути — скачать программы по одной или установить все сразу.
Первый путь. Мы скачиваем нужные программы по одной.
Мы через консоль сами задаем ему команду, какую программу/библиотеку/пакет мы хотим скачать. Например, после ввода команды npm скачает пакет gulp-less.
npm install –d gulp-less
Второй путь. Мы скачиваем все требующиеся для работы программы за раз. В этом случае Npm берет эти данные из файла package.json .
Где взять package.json
Два варианта — взять готовый или написать самостоятельно.
Например, в корневой папке проектов в Академии уже лежит готовая версия такого файла. Позже вы научитесь составлять и модифицировать его самостоятельно под ваши задачи.
Что входит в файл package.json
В файл package.json помещают информацию о приложении, которое мы разрабатываем.
Название, версия и другие базовые данные. Это на случай, если мы захотим опубликовать приложение, которое мы создаём. (Любая директория, в которой есть этот файл, интерпретируется как Node.js-пакет, даже если вы не собираетесь публиковать его).
Вот самый простой пример с базовой информацией:
< «name»: «my_package», «description»: «», «version»: «1.0.0», «scripts»: < «test»: «echo «Error: no test specified» exit 1″ >, «repository»: < «type»: «git», «url»: «https://github.com/monatheoctocat/my_package.git» >, «keywords»: [], «author»: «», «license»: «ISC», «bugs»: < «url»: «https://github.com/monatheoctocat/my_package/issues» >, «homepage»: «https://github.com/monatheoctocat/my_package» >
Зависимости. Это программы из внешних библиотек, которые мы будем использовать или уже использовали в нашем приложении. Теперь, когда мы используем эти программы внутри своих программ, наши программы становятся зависимыми от них.
Зависимости для разработчиков (devDependencies). Это программы сторонних разработчиков, которые мы используем при разработке в качестве инструментов, в том числе для оптимизации или автоматизации.
npm scripts. Короткие команды для npm, которые мы сможем задавать через консоль.
Список требований к браузерам, на которые рассчитано наше приложение.
Как установить программы из в package.json
Если положить в пустую папку файл package.json и в терминале набрать
npm install
или короткую версию команды
npm i
npm скачает все программы, которые указаны в package.json . После выполнения команды внутри папки проекта появится папка node_modules , в которую и будут помещены все программы, перечисленные в package.json .
Что делать дальше, когда всё подключено
Теперь npm отходит на второй план и в дело вступает менеджер задач Gulp. Это небольшая программа на JavaScript, которая позволяет нам подключать для решения задач нашей разработки сторонние программы из внешних библиотек.
Свои задачи (или таски — tasks), мы должны прописать в файле gulpfile.js . В первоначальном виде этот файл также размещается корне вашего проекта. Как изменить gulpfile.js под ваш проект или даже написать заново вы узнаете из лайвов на курсе «Адаптивная вёрстка и автоматизация».
- Наша группа в ВК
- Наша страница в Twitter
- Наш канал в Telegram
Источник: htmlacademy.ru
Введение в пакетный менеджер NPM для начинающих
Node.js делает возможным написание серверных приложений на JavaScript. Он построен на движке JavaScript V8 и написан на C++ — и поэтому он быстрый. Изначально он создавался как серверное окружение для приложений, но разработчики начали использовать его для создания инструментов, помогающих автоматизировать выполнение локальных задач. В итоге возникшая вокруг Node.js новая экосистема инструментов (типа Grunt и Gulp), привела к трансформации процесса фронтенд-разработки.
Чтобы использовать все эти инструменты (или пакеты) в Node.js нам нужна возможность устанавливать и управлять ими. Для этого создан npm, пакетный менеджер Node.js. Он устанавливает нужные вам пакеты и предоставляет удобный интерфейс для работы с ними. Но перед тем как начать использовать npm, вам надо установить в своей системе Node.js.
Установка Node.js
Перейдите на страницу загрузок Node.js и скачайте нужную вам версию. Есть установщики для Windows и Mac, а также скомпилированные бинарники и исходный код для Linux. Кроме того, в Linux вы можете установить Node.js с помощью пакетного менеджера, все это описано в документации.
В этой статье мы будем использовать стабильную версию 5.7.0.
Посмотреть, где установлен Node и проверить версию можно следующими командами:
$ which node /usr/local/bin/node $ node —version v5.7.0
Чтобы удостовериться, что установка прошла успешно, выполним несколько команд в простой интерактивной среде Node (REPL).
$ node > console.log(‘Node is running’); Node is running > .help .break Sometimes you get stuck, this gets you out .clear Alias for .break .exit Exit the repl .help Show repl options .load Load JS from a file into the REPL session .save Save all evaluated commands in this REPL session to a file > .exit
Установка работает, поэтому теперь мы можем сфокусироваться на npm, который включен в установку.
$ which npm /usr/local/bin/npm $ npm —version 3.6.0
Пакеты Node
С помощью npm можно устанавливать пакеты локально или глобально. В локальном режиме пакеты устанавливаются в каталог node_modules родительского каталога. Владельцем каталога является текущий пользователь.
Глобальные пакеты устанавливаются в каталог /lib/node_modules/ , владельцем которого является root (префиксом в данном случае обычно является каталог /usr/ или /usr/local ). Это значит, что вам надо использовать sudo для глобальной установки пакетов, что может повлечь ошибки с полномочиями при разрешении сторонних зависимостей, а также создает проблему для безопасности. Изменим это:
Изменение места установки глобальных пакетов
Посмотрим, что скажет нам команда npm config .
$ npm config list ; cli configs user-agent = «npm/3.6.0 node/v5.7.0 linux x64» ; node bin location = /usr/local/bin/node ; cwd = /home/sitepoint ; HOME = /home/sitepoint ; ‘npm config ls -l’ to show all defaults.
Мы получили основную информацию об установке. Теперь важно узнать место установки глобальных пакетов:
$ npm config get prefix /usr/local
Этот префикс мы хотим изменить так, чтобы устанавливать пакеты в свой домашний каталог. Для этого создайте в домашнем каталоге папку .node_modules_global и укажите ее в качестве места установки пакетов в конфигурации:
$ cd mkdir .node_modules_global $ npm config set prefix=$HOME/.node_modules_global
Внеся такую небольшую правку в конфигурацию, мы изменили место для глобальной установки пакетов. Также в нашем домашнем каталоге появился файл .npmrc .
$ npm config get prefix /home/sitepoint/.node_modules_global $ cat .npmrc prefix=/home/sitepoint/.node_modules_global
Сам npm по-прежнему установлен в каталог, владельцем которого является root. Но так как мы поменяли место установки глобальных пакетов, мы можем использовать полученное преимущество. Мы установим npm еще раз, но теперь в место, указанное нами. Заодно мы получим последнюю версию npm.
Наконец, нам надо добавить .node_modules_global/bin в нашу переменную окружения $PATH , чтобы мы могли запускать глобальные пакеты из командной строки. Сделаем это, добавив следующую строку в файл .profile или .bash_profile и перезапустив терминал.
export PATH=»$HOME/.node_modules_global/bin:$PATH»
Теперь командная оболочка будет сразу находить пакеты, установленные в .node_modules_global/bin и использовать корректную версию npm .
$ which npm /home/sitepoint/.node_modules_global/bin/npm $ npm —version 3.7.5
Глобальная установка пакетов
На данный момент у нас уже есть один глобальный пакет — это сам пакет npm. Изменим это и установим еще один пакет, это будет UglifyJS (инструмент для минификации JavaScript). Для глобальной установки используется флаг —global , его можно записывать сокращенно -g .
Как вы можете видеть из вывода в консоль, у нас установлены дополнительные пакеты — это зависимости UglifyJS.
Вывод списка установленных пакетов
Мы можем вывести список глобально установленных пакетов с помощью команды npm list с опцией —global :
Такой вывод списка, со всеми зависимостями, перенасыщен. Мы можем выводить его в более читаемом виде с помощью опции —depth=0 :
Стало лучше — теперь мы видим только список установленных пакетов с номерами их версий, без зависимостей.
Теперь мы можем обрабатывать файлы JavaScript в терминале с помощью UglifyJS. Например, следующая команда сделает из файла example.js минифицированный example.min.js :
$ uglifyjs example.js -o example.min.js
Локальная установка пакетов
Локальная установка используется в npm по умолчанию, то есть достаточно не использовать флаг —global . Пакет будет установлен в каталог node_modules родительского каталога. Создадим каталог с проектом в нашем домашнем каталоге:
Вывод списка локальных пакетов
Также как и в случае с глобальными пакетами, список локальных выводится командой npm list :
Как видите, мы можем устанавливать локальные пакеты, где угодно. Это также значит, что мы можем создать другой каталог и установить туда другую версию пакета (в нашем случае это библиотека underscore).
Удаление локальных пакетов
Так как npm это пакетный менеджер, у него есть возможность удалять пакеты. Предположим, что установленная в предыдущем примере версия underscore вызывает проблемы с совместимостью. Мы можем удалить этот пакет и поставить более старую версию.
Установка определенной версии пакета
Обновление пакета
В последней версии underscore исправили мешавший нам баг и мы хотим обновить версию этого пакета.
Примечание: для этой статьи, библиотека underscore была указана как зависимость в package.json (см. управление зависимостями).
Поиск пакетов
Мы уже пару раз использовали команду mkdir . Есть ли пакет node с подобным функционалом?
$ npm search mkdir npm WARN Building the local index for the first time, please be patient
Такой пакет нашелся (mkdirp), установим его.
Теперь создадим файл mkdir.js :
var mkdirp = require(‘mkdirp’); mkdirp(‘foo’, function (err) < if (err) console.error(err) else console.log(‘Directory created!’) >);
И запустим его в терминале:
$ node. mkdir.js Directory created!
Управление кэшем
После установки пакета npm сохраняет его копию в кэше, поэтому при следующей его установке вам не нужно беспокоить сеть. Кэш хранится в каталоге .npm вашего домашнего каталога.
$ ls ~/.npm _locks minimist mkdirp registry.npmjs.org underscore
Этот каталог со временем замусоривается старыми пакетами и иногда его полезно очищать.
$ npm cache clean
Управление зависимостями
В нашем проекте пока только два пакета, но их количество очень быстро возрастает. Установка зависимостей вручную очень неудобна, поэтому для управления ими мы можем использовать файл package.json , расположив его в корне нашего проекта. Он генерируется с помощью команды npm init , которая выведет в консоль несколько вопросов для создания файла:
$ npm init This utility will walk you through creating a package.json file. Press ^C at any time to quit. name: (project) demo version: (1.0.0) description: Demo of package.json entry point: (index.js) test command: git repository: keywords: author: Sitepoint license: (ISC)
В результате мы получим файл со следующим содержимым:
< «name»: «demo», «version»: «1.0.0», «description»: «Demo package.json», «main»: «main.js», «dependencies»: < «mkdirp»: «^0.5.1», «underscore»: «^1.8.3» >, «devDependencies»: <>, «scripts»: < «test»: «echo «Error: no test specified» exit 1″ >, «author»: «Sitepoint», «license»: «ISC» >
Вы можете сгенерировать это файл и более простым способом, с помощью опции —yes (автоматический ответ “да” на все вопросы):
$ npm init —yes
Файл package.json будет создан в качестве name будет использовано название каталога.
Вы также можете добавить private: true , чтобы предотвратить случайную публикацию частных репозиториев или подавления любых предупреждений при выполнении npm install . Создадим новый каталог и используем package.json для установки зависимостей.
Это показывает, как просто мы можем установить пакеты, нужные нам в другом каталоге на основе нашего файла package.json . Но как поддерживать его актуальность при установке новых пакетов? Для этого используется флаг —save .
Наш файл package.json также обновился:
«dependencies»:
Менеджеры версий
Есть пара инструментов, позволяющих использовать несколько версий Node.j на одном компьютере. Первая это n, другая — nvm(Node Version Manager). Если вас интересует эта возможность, подробнее о ней можно узнать из следующей статьи: Install Multiple Versions of Node.js using nvm.
Заключение
В этой статье освещены основы работы с npm. Я показал, как установить Node.js, как изменить место установки глобальных пакетов (так мы можем избежать использования sudo ) и как установить пакеты локально и глобально. Я также рассмотрел удаление, обновление и установку определенной версии пакета, а также управление зависимостями проекта.
В каталоге npm тысячи пакетов и их число будет расти, с учетом анонса jQuery о публикации всех плагинов как пакетов npm.
Источник: prgssr.ru
Npm install что это за программа
Менеджер пакетов, входящий в состав Node.js.
Установка пакета производится при помощи команды:
Все доступные для установки пакеты и их краткое описание:
Этой же командой можно производить выборочный поиск пакетов.
Установка
Входит в состав Nodejs поэтому обычно не требует отдельной установки.
Об установке Nodejs читайте в статье установка Nodejs
Если по какой-то причине в вашей системе npm не установился с Nodejs (у меня такое было в Ubuntu ) — выполните
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.
Use `npm install ` afterwards to install a package and
save it as a dependency in the package.json file.
Проверим, что появилось в нашей папке после инициализации
package.json это файл, который будет хранить в себе список установленных пакетов и их версии.
Сразу после инициализации он содержит только информацию о проекте
В мире Python похожие задачи решают venv и freeze
Установка пакетов
Установим первый пакет. Начнём с jquery.
npm install jquery
В версиях NPM ниже 5.0.0 при установке пакетов не происходило автоматической записи в файл package.json
Для того, чтобы обновить package.json нужно было устанавливать с опцией —save
npm isntall jquery —save
В новых версиях это происходит автоматически, но —save ещё используется для того, чтобы задать как именно установить пакет.
Популярный вариант это —save-dev который позволяет сделать установку, скажем так для «разработки и тестирования»
Пример такой установки я разбираю в статье Gulp
Проверим, что появилось в нашей папке после установки первого пакета
node_modules/ package.json package-lock.json
Файл package-lock.json появиля в пятой версии NPM как дополнительное средство контроля совместимости.
Особенно для случаев когда файл package.json скопирован и через некоторое время с его помощью произвели инициализацию (npm init), но за это время какой-то из пакетов успел получить новую версию.
Подробнее про это можно прочитать здесь, здесь, здесь
Про контроль версий можно прочитать на сайте semver.org
Посмотрим содержимое файла package-lock.json
В данном случае всё очевидно, но огромное количество пакетов создадут не одну папку а сразу несколько.
Старые версии 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 очень много. Чтобы изучить их все — зарегистрируйтесь на сайте www.npmjs.com
Удобство файла package.json заключается в том, что если Вы хотите скопировать Ваш проект — достаточно перенести файл package.json и выполнить команду npm init.
Все пакеты, перечисленные в package.json будут установлены с указанными версиями.
Ошибки
Пока что этот раздел пуст
Источник: www.andreyolegovich.ru