В нашем package.json мы используем обозначение файла для ссылки на наши собственные разработанные частные модули, например:
"dependencies": {
"privateX": "file:////serverName/path/to/privateX",
"privateY": "file:////serverName/path/to/privateY"
}
Это работало нормально до npm v4.2.0 (с Node v7.10.1). После обновления до npm v5.5.1 (с Node.js 8.9.0 LTS) мы больше не можем их устанавливать (npm install) и получаем следующую ошибку:
npm ERR! code ENOLOCAL
npm ERR! Could not install from "..\..\serverName\path\to\privateX" as it does not contain a package.json file.
Я пробовал разные подходы, например, которые тоже не работали:
- "privateX": "file: // имя_сервера / путь / к / privateX"
- "privateX": "file: \\\\ имя_сервера \\ path \\ to \\ privateX"
очистка кэша npm --force не помогло.
Работало только размещение зависимостей на каждом сервере и использование относительного пути. Но это неосуществимо:
- "privateX": "file: //../../path/to/privateX"
Когда мы возвращаемся к npm v4.2.0 или ниже, он снова работает. Что произошло с той версии, что привело к нарушению доступа к другому серверу в той же сети? Или как будет выглядеть подход для ссылки на зависимости на другом сервере в той же сети, в npm 5.x.x и выше?
Наши частные модули расположены на сервере в нашей сети. Все серверы работают на Windows.