Ответ 1
Чтобы удалить модуль npm
из папки проекта node_modules
, запустите:
npm uninstall <module> --save
Обратите внимание, что при выполнении этой команды модули npm
должны быть удалены из того же каталога, который содержит папку node_modules
. Опция --save
также удалит ее из package.json
Можно также удалить локальную установку зависимости/модуля, удалив ее каталог из локальной папки node_modules
. Да, безопасно удалять там зависимости.
Чтобы удалить модуль npm
, который был установлен глобально, запустите:
npm uninstall -g <module>
Не имеет значения, откуда вы запускаете эту команду.
Чтобы установить модуль npm
, запустите: (только в качестве ссылки)
npm install <module>
... или:
npm install
(если в корневом каталоге вашего проекта есть файл package.json
)
... или:
npm install <module> --save-dev
(если вы хотите добавить минимальную версию к зависимости)
Хорошие вещи, чтобы узнать о Grunt:
- Если вы установили
grunt
stable до 18 февраля 2013 года (был выпущен деньgrunt v0.4.x
), у вас может быть более стараяgrunt
версия по-прежнему сохраняется в вашей системе. Это потому, что версииgrunt
ниже0.4.x
были установлены глобально, что вызвало большую боль при обновлении/сохранении версий. -
grunt
иgrunt-cli
- две разные вещи.-
grunt
(без "cli" ) обычно устанавливается на уровне проекта (при указанииdevDependency
вpackage.json
), запустивnpm install
. Это также известно как локальная установка. -
grunt-cli
- базовая основа, на которой локальные версииgrunt
выполняются в разных проектах/папках. Он может быть установлен локально, но более полезен, если он установлен глобально, один раз.
-
-
grunt
устанавливается только локально (запустивnpm install grunt
). -
grunt-cli
предпочтительно устанавливается глобально (запустивnpm install -g grunt-cli
).grunt-cli
Официальнаяnpm
страница по-прежнему предупреждает об установкеgrunt
(без cli) по всему миру. - Если вы хотите удалить глобальную установку
grunt-cli
, запуститеnpm uninstall -g grunt-cli
. Эта проблема в gruntjs поддерживает эту процедуру. - Никогда не устанавливайте
grunt
глобально (запустивnpm install -g grunt
).
Вкл npm
и sudo
sudo
плохо работает с npm
. Используйте его только в случае необходимости. Ниже приведены две цитаты о преимуществах и недостатках его использования:
Цитата Исаака З. Шлютера о его Введение в npm:
Я настоятельно рекомендую вам не управлять пакетами с помощью sudo! Пакеты могут запускать произвольные сценарии, что делает судопроизводство командой менеджера пакетов как безопасно, как стрижка бензопилой. Конечно, он быстро и определенно собирается срезать через любые препятствия, но вы, возможно, действительно захотите, чтобы это препятствие оставалось там.
Я рекомендую сделать это один раз:
sudo chown -R $USER /usr/local
Это устанавливает учетную запись пользователя как владельца каталога /usr/local, так что вы можете просто выпустите там обычные команды. Тогда вам никогда не придется использовать sudo, когда вы установите node или выполните команды npm.
Это намного лучше. Предполагается, что /usr/local - это материал, который вы установили.
Еще один улов, упомянутый Андреем Карпушонаком:
Существуют определенные проблемы безопасности и ограничения функциональности относительно изменения права собственности /usr/local на текущего пользователя:
- если на машине есть другой пользователь, который может использовать глобальные пакеты npm - не меняют владельца /usr/local
- https://apple.stackexchange.com/questions/1393/are-my-permissions-for-usr-local-correct
- https://askubuntu.com/questions/261326/is-it-safe-to-chown-usr-local
Сказав это, если вы хотите установить глобальный модуль без использования sudo, Я не вижу лучшего решения (с прагматической точки зрения), чем упоминалось. Безопасность и простота использования - очень широкая тема, и нет простого ответа на этот вопрос. - это просто зависит от ваших требований.