Возможно, вы захотите прочитать , чтобы понять разницу между npm, пряжей и pnpm
В npm иерархия каталогов следующая
node_modules
- package-A
- package-B
- package-C
-- some-file-name-in-package-c.js
Когда вы запускаете yarn install
где-то, в идеале внутри корня рабочего пространства, и все работает хорошо, теперь у вас должна быть похожая файловая иерархия:
/package.json
/yarn.lock
/node_modules
/node_modules/cross-env
/node_modules/workspace-a -> /workspace-a
/workspace-a/package.json
/workspace-b/package.json
npm создает package.json
, который при установке зависимостей добавит его в файл.
В пряжи создается файл yarn.lock
, аналогичный npm-shrinkwrap.json
, но он создается по умолчанию. В дополнение к обычной информации, файл yarn.lock содержит контрольные суммы для устанавливаемого содержимого, гарантируя, что используется та же версия библиотеки.
В отличие от npm, для работы пряжи не требуется подключение к Интернету для установки локально кэшированных зависимостей, что обеспечивает автономный режим. Функция, которая была неудачно запрошена у npm с 2012 года.
Разницу между пряжей и npm можно позаимствовать у пряжи на официальном сайте, так как там указано, что
Note: Installation via npm is generally not recommended. npm is non-deterministic, packages are not signed, and npm does not perform any integrity checks other than a basic SHA1 hash, which is a security risk when installing system-wide apps.
For these reasons, it is highly recommended that you install Yarn through the installation method best suited to your operating system.