#node.js #npm
#node.js #npm
Вопрос:
В Windows NPM возникают проблемы из-за глубокой вложенности зависимостей. Чтобы исправить это, друг предложил следующую команду
npm install <dep> -g --no-bin-link
На страницах руководства говорится об этой команде
The --no-bin-links argument will prevent npm from creating symlinks for any binaries the package might contain."
Может ли кто-нибудь объяснить простым языком, какое влияние оказывает этот флаг на разрешение установки зависимостей, которые обычно вызывают глубокие проблемы с путями?
Комментарии:
1. Вот запрос на извлечение: github.com/npm/npm/pull/3090/files . Похоже, что это вообще не беспокоит связывание.
2. @DavinTryon спасибо за ссылку, я все еще не уверен, что это значит. Это мой первый переход к не .net, поэтому для меня я на самом деле не вижу, что изменил конечный результат этой команды или как она остановила путь, превышающий ограничение Windows : (
Ответ №1:
Может ли кто-нибудь объяснить простым языком, какое влияние оказывает этот флаг на разрешение установки зависимостей, которые обычно вызывают глубокие проблемы с путями?
Конечно. Многие пакеты, опубликованные на npm
, можно использовать как в качестве инструмента командной строки, так и программно. Например, jslint
пакет публикует как средство командной строки для компоновки файлов, так и API, который может быть require
общим, так что вы можете написать код, использующий jslint
Проблемы с глубинным путем обычно становятся видимыми при создании файлов, которые попадают в bin
каталог, для использования в командной строке. Глубокие пути обычно не влияют на пакеты, используемые программно с require
.
Итак, для «обычных» зависимостей пакета обычно безвредно опускать ссылки на bin, потому что эти зависимости используются с require
.
Для «dev» зависимостей или пакетов, установленных глобально, обычно необходимо сохранять ссылки на bin, потому что эти пакеты, скорее всего, будут использоваться в качестве инструментов командной строки.
Кстати, вам следует обновиться до последней версии, npm
если вы еще этого не сделали — последняя версия 2.1.16 на момент написания статьи, и руководство по обновлению npm
в Windows находится здесь: https://github.com/npm/npm/wiki/Troubleshooting#upgrading-on-windows
Комментарии:
1. Имеет ли обновление npm какое-либо отношение к вопросу? Меня смущает упоминание
2. ДА. Исторически
node
дистрибутивы выпускались медленнее, чемnpm
, и часто междуnpm
выпуском иnode
включением текущего npm существует существенное отставание. Любой, кто использует stocknpm
с node 0.10.x, должен обновиться.