У цій частині ви дізнаєтесь, що таке NPM і як ним користуватись. Давайте почнемо!
NPM у Nutshell
NPM - це менеджер пакетів, який використовується Node.js-додатками - ви можете знайти там тонни модулів. Це як Maven для Java або Composer для PHP. Є два основних інтерфейси з якими ви будете працювати - веб-сайт NPM та командний рядок NPM.
І веб-сайт, і CLI використовують той самий реєстр для пошуку та відображення модулів.
Веб-сайт
Сайт NPM можна знайти за цією адресою: https://npmjs.com. Тут Ви можете зареєструватися та почати пошук нових пакетів.
Інтерфейс командного рядка
Щоб запустити CLI введіть:
npm
Зверніть увагу, що NPM вже вбудовано у Node.js, так що вам не потрібно встановлювати його окремо - але якщо ви хочете використовувати конкретну версію npm, вам потрібно буде його оновити. Якщо ви хочете встановити третю версію npm, ви можете це зробити за допомогою: npm install npm@3 -g
.
Використання NPM
Ви вже зустрічали NPM у попередній статті, коли створювали файл package.json
. Давайте дізнаємось про це більше!
Додавання залежностей
У цьому розділі ви дізнаєтесь, як додавати runtime-залежності для вашого додатку.
Після того, як у ви створили свій файл package.json
, ви можете додати залежності до вашого додатку. Давайте зробимо це! Спробуйте виконати наступні дії:
npm install lodash --save
За допомогою цієї команди ми: по-перше, завантажили lodash
і помістили його в папку node_modules
. Це папка, в якій будуть знаходитись всі ваші зовнішні залежності. Як правило, не потрібно додавати цю папку в контроль версіями, так що якщо ви використовуєте Git, не забувайте додати її в файл .gitignore
.
Це може бути гарною відправною точкою для вашого .gitignore
.
# Logs
logs
*.log
npm-debug.log*
# Runtime data
pids
*.pid
*.seed
# Директорій для інструментованих бібліотек, згенерованих jscoverage/JSCover
lib-cov
# Директорій, який використовується такими інструментами як istanbul
coverage
# Grunt (http://gruntjs.com/creating-plugins#storing-task-files)
.grunt
# node-waf конфігурація
.lock-wscript
# Скомпільовані бінарні адднони(http://nodejs.org/api/addons.html)
build/Release
# Директорії з залежностями
node_modules
jspm_packages
# Необов'язкова директорія для npm кешу
.npm
# Необов'язкова REPL історія
.node_repl_history
Тепер погляньте на файл package.json
! З'явилася нова властивість dependencies
:
"dependencies": {
"lodash": "4.6.1"
}
Це означає, що lodash
версії 4.6.1
було встановлено і він готовий до роботи.
Так як lodash
готовий до використання, давайте скористуємось ним! Ви можете зробити це так само, як ви робите зі вашими власнимм модулями, але без визначення шляху, потрібно оголосити тільки назву модуля:
// index.js
const _ = require('lodash')
_.assign({ 'a': 1 }, { 'b': 2 }, { 'c': 3 });
// → { 'a': 1, 'b': 2, 'c': 3 }
Додавання залежностей розробки
У цьому розділі ви дізнаєтесь, як додавати build-time-залежності у ваш додаток.
При розробці веб-додатків, вам потрібно буде мінімізувати ваші JavaScript файли, зв'язати CSS файли тощо. Модулі, які будуть робити це будуть запускатися тільки під час розробки асетів.
Ви можете встановити такі скрипти наступним чином:
npm install mocha --save-dev
Після того, як ви це зробите, з'явиться новий розділ у вашому файлі package.json
під назвою devDependencies
. Всі модулі, які ви встановили через --save-dev
будуть розміщені там. Вони також будуть розіщені у той самий директорій node_modules
.
NPM скрипти
NPM скрипти - це потужна концепція, з їх допомогою ви можете розробляти невеликі утиліти або навіть створювати складні системи розробки.
Найбільш поширеними з них є скрипти start
і test
. Через start
ви можете визначити, як ваш додаток буде запускатись, а test
для запуску тестів. У вашому package.json
вони можуть виглядати наступним чином:
"scripts": {
"start": "node index.js",
"test": "mocha test",
"your-custom-script": "echo npm"
}
На що тут слід звернути увагу:
start
: досить простий, він описує початкову точку вашого додатку, запускається черезnpm start
.test
: цей скрипт спрямований на те, щоб запускати тести - фіча у тому, що в даному випадкуmocha
не потрібно встановлювати глобально, так як npm буде шукати його в папціnode_modules/.bin
, і mocha буде розміщено там. Він запускається з:npm test
.your-custom-script
: все, що ви захочете, ви можете обирати будь-яку назву. Він буде запускатись черезnpm run your-custom-script
- не забудьтеrun
!
Локальні / Приватні Пакети
Раніше NPM мав глобальний простір імен для назв модулів - з більше ніж 250.000 модулів в реєстрі більшість простих назв вже були вже зайняті. Крім того, глобальний namespace містить тільки відкриті модулі.
NPM вирішили цю проблему з введенням локальних пакетів. Такі пакети мають наступну схему іменування:
@myorg/mypackage
Ви можете встановити їх тим самим способом, як ви робили це раніше:
npm install @myorg/mypackage --save-dev
Усе буде показуватись у вашому package.json
наступним чином:
"dependencies": {
"@myorg/mypackage": "^1.0.0"
}
Включення цих пакетів виглядатиме наступним чином:
require('@myorg/mypackage')
Далі: Частина 3 - Поняття асинхронного програмування в Node.js
Ще немає коментарів