Недавно мне было предложено установить патч NPM с помощью npm install -g npm
, но этот процесс не удался. Ниже приведены выдержки из сообщения об ошибке.
npm WARN checkPermissions Missing write access to /usr/local/lib/node_modules/npm
npm WARN checkPermissions Missing write access to /usr/local/lib/node_modules/npm/node_modules
и
npm ERR! If you believe this might be a permissions issue, please double-check the
npm ERR! permissions of the file and its containing directories, or try running
npm ERR! the command again as root/Administrator.
Безопасно ли устанавливать патч с помощью sudo? Если нет, то какое правильное решение этой проблемы?
Да, можно, но нет, это небезопасно. Многие так делают, но не должны. Если вы устанавливаете с помощью sudo
, то все зависимости и подзависимости пакета (которых может быть очень большое количество пакетов) могут запускать сценарии жизненного цикла от имени пользователя root, в основном делая все, что они хотят. Вы можете смягчить это с помощью --ignore-scripts
, но тогда то, что вы устанавливаете, может не работать.
Лучшие решения находятся в документах npm по этой теме : установите node
и npm
с помощью диспетчера версий (например, nvm) или настройте npm
для выполнения глобальной установки в каталоге, где вам не нужно будет использовать sudo
.
Тем не менее, для вашей конкретной ситуации — простое обновление самого npm
— использование sudo
является очень распространенным решением, несмотря на то, что это не совсем целесообразно. Установка npm
с помощью диспетчера версий лучше, если вы работаете на компьютере для разработки (например, на своем личном ноутбуке).