LINUX.ORG.RU

Как указать корневой каталог для глобально установленных пакетов node.js?

 ,


0

1

Добрый день, комрады!

В домашней папке в файл .npmrc добавил строку prefix = ${HOME}/.npm. Теперь команда npm install -g ... скачивает пакеты по указанному пути, но сами пакеты друг друга не видят.

Прошу подсказать как настроить кастомное расположение скачанных пакетов, и чтобы последние друг друга видели. Спасибо.

★★

но сами пакеты друг друга не видят.

как это проявляется?

${HOME}/.npm/bin в PATH добавь

dib2 ★★★★★
()
Ответ на: комментарий от dib2

Пример. Ставлю eslint. Он ругается:

It's likely that the plugin isn't installed correctly. Try reinstalling by running the following:

    npm install eslint-plugin-react@latest --save-dev

Но плагин eslint-plugin-react уже стоит.

rmu ★★
() автор топика
Ответ на: комментарий от dib2

${HOME}/.npm/bin в PATH добавь

Это добавлено. Например, у eslint-plugin-react нет своего бина, там только файлы в node_modules.

rmu ★★
() автор топика
Ответ на: комментарий от dib2

Конкретно у eslint можно указать параметром –resolve-plugins-relative-to, где искать плагины. Но я хочу решить вопрос вообще для всех пакетов.

rmu ★★
() автор топика
Ответ на: комментарий от vtVitus

К сожалению, не помогает. Однако если запускать с помощью npx, то пакеты друг друга видят.

rmu ★★
() автор топика

Проблема решается смирением с тем фактом, что в подпапке node_modules каждого проекта устанавливаются все необходимые пакеты.

rmu ★★
() автор топика
Ответ на: комментарий от rmu

Пример. Ставлю eslint. Он ругается:

это все надо локально + npx

подпапке node_modules каждого проекта устанавливаются все необходимые пакеты.

Ъ-way

dib2 ★★★★★
()

А в домашней папке случайно node_modules не валяется?

Miguel ★★★★★
()

но сами пакеты друг друга не видят.

По-моему это фича для -g. Ставь локально все и не парься.

Vit ★★★★★
()
Ответ на: комментарий от Vit

Всё решилось просто. Меня сбил с толку eslint. Чтобы он не ругался на отсутствие плагинов, в каждом проекте нужно создавать .eslintrc* командой eslint --init. Придётся с этим смириться. При этом если использовать общий файл настроек в корне ~/.eslintrc*, то eslint выдаёт чудные ошибки о неустановленности плагинов и вообще отказывается работать.

rmu ★★
() автор топика
Ответ на: комментарий от rmu

eslint без конфига вообще не работает по-моему. Хочешь без конфига - бери standard, но у него дефолты специфичные. Мне больше нравится standardx - он позволяет слегка подкрутить под себя (без лепки километровых конфигов).

Глобальные установки очень не советую, можешь нарваться что IDE подцепит левый конфиг или плагины пропущены. Оно тебе надо? При локальной у тебя будет гарантированный результат. То что оно мешок зависимостей тащит - дык место на диске дешевое, воспроизводимость важнее.

Vit ★★★★★
()
Ответ на: комментарий от tz4678

Почитай про npx

А ты можешь мне своими словами пересказать, а то не понимаю …

Владимир

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.