2. Типы зависимостей
Зависимости служат многим целям. Некоторые зависимости необходимы для сборки вашего проекта, другие — при запуске вашей программы. Таким образом, существует ряд различных типов зависимостей (например, dependencies, devDependencies, и peerDependencies).
Ваш package.json будет содержать все эти зависимости:
{
"name": "my-project",
"dependencies": {
"package-a": "^1.0.0"
},
"devDependencies": {
"package-b": "^1.2.1"
},
"peerDependencies": {
"package-c": "^2.5.4"
},
"optionalDependencies": {
"package-d": "^3.1.0"
}
} У большинства людей есть только dependencies и devDependencies, но каждая из них важна для понимания.
dependencies
Это ваши обычные зависимости, то есть те, которые вам нужны при запуске кода (например, React или ImmutableJS).
devDependencies
Это ваши зависимости для разработки. Зависимости, которые необходимы на каком-то этапе процесса разработки, но не при запуске вашего кода (например, Babel или Flow).
peerDependencies
Взаимозависимости — это особый тип зависимости, который возникает только в том случае, если вы публикуете свой собственный пакет.
Наличие взаимозависимости означает, что вашему пакету необходима зависимость, которая является абсолютно той же самой зависимостью, что и у человека, устанавливающего ваш пакет. Это полезно для пакетов, таких как react, которым нужно иметь единственный экземпляр react-dom, который также используется человеком, устанавливающим его.
optionalDependencies
Дополнительные зависимости — это как раз то, что они есть: необязательные. Если они не установятся, Yarn всё равно сообщит, что процесс установки был успешным.
Это полезно для зависимостей, которые не обязательно будут работать на каждом компьютере, и у вас есть резервный план на случай, если они не установлены (например, Watchman).
bundledDependencies
Массив имён пакетов, которые будут включены при публикации пакета.
Включённые зависимости должны находиться внутри вашего проекта. Функциональность по существу такая же, как у обычных зависимостей. Они также будут упакованы при запуске yarn pack.
Обычные зависимости обычно устанавливаются из реестра npm. Включённые зависимости полезны в тех случаях, когда обычные зависимости недостаточны:
- Когда вы хотите повторно использовать стороннюю библиотеку, которая не из реестра npm или была изменена.
- Когда вы хотите повторно использовать свои собственные проекты в качестве модулей.
- Когда вы хотите распространять некоторые файлы с вашим модулем.
© 2016–present Yarn Contributors
Licensed under the BSD License.
https://classic.yarnpkg.com/en/docs/dependency-types