Магазин в Windows - PullRequest
       28

Магазин в Windows

0 голосов
/ 10 октября 2019

Я не знаю, это ошибка или недостаток понимания. Я не понимаю, как работает хранилище pnpm в Windows.

Скажем, я использую папку "test" на C: - хранилище (.pnpm-store) создается в% USERPROFILE%. Когда у меня есть папка «test» на другом диске, хранилище создается внутри «test». Кроме того, когда на этом же диске будет находиться другая папка «test2», в «test2» будет создано другое новое хранилище. IMO, «test» и «test2» на этом (другом - не c) диске должны использовать хранилище в корне этого диска (да, мой пользователь может создать папку там), не так ли.

Итак, давайте предположим, что у меня есть папка «test» с папкой пакета внутри «package1», и я создаю package.json с помощью «pnpm init -y». Теперь я добавляю пакет, например, «pnpm add debug». ИМО магазин на этом диске должны быть ссылки. Но это не так:

C:\test\package1>dir /s | findstr JUNCTION
10.10.2019  13:25    <JUNCTION>     debug [C:\test\package1\node_modules\.pnpm\registry.npmjs.org\debug\4.1.1\node_modules\debug]
10.10.2019  13:25    <JUNCTION>     ms [C:\test\package1\node_modules\.pnpm\registry.npmjs.org\ms\2.1.2\node_modules\ms]
10.10.2019  13:25    <JUNCTION>     ms [C:\test\package1\node_modules\.pnpm\registry.npmjs.org\ms\2.1.2\node_modules\ms]

Так что же не так?

1 Ответ

1 голос
/ 11 октября 2019

диск должен использовать хранилище в корне этого диска (да, мой пользователь может создать папку там), не так ли.

При установке на тот же дискгде каталог dir пользователя, магазин создается в каталоге dir пользователей. При установке на другие диски хранилище создается в корне диска (например, в D:\.pnpm-store)

, ссылка на хранилище на этом диске. Но это не

Этот пакет, который вы видите в своем проекте, физически совпадает с пакетом в магазине. Это жесткая ссылка. Подробнее на странице часто задаваемых вопросов pnpm :

pnpm создает жесткие ссылки из глобального хранилища на папки проекта node_modules. Жесткие ссылки указывают на то же место на диске, где находятся исходные файлы. Так, например, если у вас есть foo в вашем проекте как зависимость, и она занимает 1 МБ пространства, то это будет выглядеть так, как будто она занимает 1 МБ пространства в папке проекта node_modules и столько же места в глобальном хранилище. Однако этот 1 МБ - это одно и то же пространство на диске, адресованное из двух разных мест. Таким образом, в общей сложности foo занимает 1 МБ, а не 2 МБ.

...