Зависимостите правят възможно ефективното повторно използване на кода. Уверете се, че знаете как да ги управлявате във вашите Node проекти.
Зависимостта е част от кода – библиотека, модул или пакет – който проектът изисква, за да функционира правилно.
В Node.js зависимостите и devDependencies са категории пакети, които можете да дефинирате във вашия файл package.json, за да управлявате зависимостите на вашия проект. Разгледайте техните различия и научете как да ги използвате във вашите проекти.
Редовни зависимости в npm проект
Редовните зависимости – или просто зависимостите – са пакети, които вашето приложение изисква, за да работи по предназначение по време на изпълнение и в производствени среди.
Зависимостите могат да включват:
- Външни библиотеки, които предлагат предварително изградена функционалност, като lodash.
- Рамки, които осигуряват основа или структура за изграждане на приложения, като Express или React.
- Драйвери за база данни, като MongoDB или sqlite3.
- Пакети, които помагат при задачи, свързани с мрежата, като Axios или Socket.io.
Например, ако изграждате a CRUD API с Express.js, експресен ще бъде една от вашите зависимости, защото вашият сървър се нуждае от него, за да функционира.
За да инсталирате зависимостите по време на изпълнение, можете да използвате мениджър на пакети като npm, мениджърът на пакети на възли, или Прежда.
Зависимостите съществуват под обекта на зависимости във файл package.json. Обектът на зависимостите съхранява имената и версиите на пакетите.
За да инсталирате пакет като зависимост с помощта на NPM, изпълнете командата по-долу:
npm инсталирайте
Командата по-горе инсталира пакета и го регистрира като зависимост от вашия проект в package.json:
// package.json
"зависимости": {
"име на пакет": "^пакет-версия",
}
Когато клонирате проект от уеб базирано хранилище, можете да инсталирате зависимостите, като изпълните командата по-долу:
npm инсталирайте
Когато изпълните командата по-горе, вашият мениджър на пакети чете package.json файл и инсталира посочените зависимости и devDependencies от системния регистър на пакета.
Зависимости на разработката и как да ги използвате
Зависимостите за разработка — или devDepenendencies — са пакети, от които вашето приложение се нуждае само по време на процеса на разработка. С други думи, те не са необходими в производството.
devDependencies могат да включват:
- Тестване на рамки, като Jest или Mocha.
- Тестове, като Chai.
- Linters и formatters, като Eslint.
- Инструменти за документиране, като Swagger.
Често срещан пример за devDepenedency е пакетът Nodemon, който рестартира вашия сървър, когато открие промени във вашите скриптове.
Можете да дефинирате devDependencies под devDependencies обект в а package.json файл. Този обект съхранява имената и версиите на пакетите.
Можете да инсталирате пакет като devDependency, като изпълните тази команда:
npm инсталирайте --save-dev
Като алтернатива можете да инсталирате пакет като devDependency, като изпълните тази команда:
npm инсталирайте -D
Командата по-горе инсталира и регистрира пакета във вашия package.json файл, така:
// package.json
"devDependencies": {
"име на пакет": "^пакет-версия"
}
Когато клонирате проект от уеб базирано хранилище, изпълнявайки npm инсталирайте командата също ще инсталира devDependencies.
Изпълнението на командата обаче с производство флаг инсталира само зависимостите.
Например:
npm install --production
Когато изпълните командата по-горе, вашият мениджър на пакети чете package.json файл и инсталира зависимостите на вашето приложение от регистъра на пакетите.
Като алтернатива можете да зададете NODE_ENV променлива към „производство”, за да постигнете същите резултати.
Други видове зависимости
Освен зависимостите и devDependencies, Node.js също категоризира пакетите като peerDepenecies и optionalDependencies.
Партньорски зависимости
Партньорските зависимости са зависимости, които даден пакет използва, когато очаква конкретна версия или съвместима версия на друг пакет да присъства в приложението, което го използва.
Целта на равноправните зависимости е да се гарантира, че пакетът работи правилно със своите зависимости и избягва конфликти или проблеми със съвместимостта.
За версии на npm, по-малки от v7, партньорските зависимости не се инсталират автоматично. По-скоро кодът, който включва пакета, трябва да го включва като зависимост. Ако пакетът не го включва, npm ще изведе предупреждение.
Те съществуват под peerDependencies обект във файла package.json:
"peerDependencies": {
"пакет": "^версия"
}
Незадължителни зависимости
Незадължителните зависимости са пакети, които не са от съществено значение за основната функционалност на даден проект, но могат да подобрят неговите възможности, ако са налични.
Тъй като незадължителните зависимости не са необходими за правилната работа на проекта, можете да ги пропуснете по време на инсталацията.
Изпълнението на командата по-долу ще пропусне незадължителните зависимости по време на инсталационния процес:
npm install --omit=по избор
Те съществуват под optionalDependencies обект във файла package.json:
"опционални зависимости": {
"пакет": "^версия"
}
Категориите улесняват управлението на вашите зависимости
Ефективното разбиране, управление и категоризиране на зависимостите помага да се осигури ясно разделение между пакетите, необходими за производство, и тези, необходими само по време на разработката.
Това разграничение подпомага ефективното управление на зависимостите, правилното групиране и рационализираното внедряване на вашия проект.