Предположим, что мы используем пакет npm x
, который зависит от n
.
Можем ли мы быть уверены, что приведенный ниже код будет работать, даже если мы не запускали npm install n
явно?
import { someFunction } from "n";
someFunction();
Да.
Согласно npm docs, если пакет X
имеет пакет N
, указанный как dependency
, а не как devDependency
, он также будет загружен.
Чтобы указать пакеты, от которых зависит ваш проект, вы должны перечислить их как
"dependencies"
или"devDependencies"
в файлеpackage.json
вашего пакета. Когда вы (или другой пользователь) запуститеnpm install
, npm загрузит зависимости и devDependencies, перечисленные вpackage.json
"dependencies"
: Пакеты, необходимые для вашего приложения в рабочей среде.
"devDependencies"
: пакеты, которые необходимы только для локальной разработки и тестирования.
Только обратите внимание, что обычно библиотеки npm указаны в их dependencies
минимальной требуемой версии других пакетов. Поэтому обычно лучше установить последнюю версию пакета, который вы хотите использовать, а не полагаться на один пакет для установки других.
Обратите внимание, что если вы получаете доступ к x
через символическую ссылку, n
и другие зависимости x
не будут установлены.
@TakesiTokugawaYD хорошо, если вы передадите файлы пакета в создаваемую вами библиотеку, тогда да, вам не нужны зависимости, но не делайте этого. Это сделает вашу библиотеку пустой тратой, потому что если вы снова загрузите тонны кода без причины
Понятно! Еще раз спасибо.
Я улучшил ваш ответ. Пожалуйста, поправьте меня, если я ошибаюсь.
Спасибо за ответ! Позвольте мне прояснить еще одну вещь. Если мы используем Webpack, который связывает зависимости для вывода файлов, технически мы можем объявить их в
devDependencies
, а неdependencies
изpackage.json
, не так ли? Поскольку комментарии об авторских правах не удаляются Webpack, это даже не будет нарушением MIT.