Как этот переключатель npm устраняет проблемы с длиной пути Windows

#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 существует существенное отставание. Любой, кто использует stock npm с node 0.10.x, должен обновиться.