Как удалить yarn с компьютера

Обновлено: 04.07.2024

Одна из лучших особенностей открытого кода и экосистем современных языков программирования заключается в том, что код, который вы собираетесь написать, вероятнее всего, уже написан и готов к использованию.

Для Node.js уже написано множество пакетов, и обычно эти пакеты созданы умными и опытными людьми, которые продумали кучу вещей, о которых менее опытный разработчик мог не подумать.

В этом мануале мы обсудим работу с инструментами npm и yarn. Обе эти команды довольно популярны, вы могли сталкиваться с ними в других статьях по Node.js. Если же вы никогда не слышали о них: npm и yarn – это менеджеры пакетов для Node.js. Оба они используют файл package.json и работают очень похожим образом.

Если у вас уже есть локальная установка Node.js, вероятно, у вас установлен и npm. Если вы предпочитаете использовать yarn, но у вас нет этой команды, вы можете ознакомиться с инструкциями по установке yarn здесь.

В зависимости от вашей системы вы также можете установить эти команды с помощью вашего менеджера пакетов.

Кроме того, некоторые пакеты мы будем устанавливать глобально, а другие – как зависимость проекта. Для работы с этим мануалом можно использовать уже существующий проект или создать простой тестовый проект в каталоге /tmp, например:

$ mkdir /tmp/gator-project
$ cd /tmp/gator-project
$ npm init -y

Эти команды создают файл package.json, в который мы будем добавлять и удалять пакеты.

Добавление зависимости разработки в проект

Не все зависимости одинаковы – некоторые из них требуются только при разработке. Эти зависимости тоже важны, но в производстве они могут замедлить развертывание, поскольку для их установки требуется время.

В качестве примера зависимостей разработки можно привести утилиты тестирования типа mocha или jest. Такие пакеты мы можем установить как зависимости разработки и добавить в раздел devDependencies нашего файла package.json:

Добавление зависимостей производства в проект

Некоторые зависимости критически важны для приложения и всегда должны устанавливаться независимо от среды – и в разработке, и в производстве без них никуда. Это зависимости производства, обычно к ним относятся такие пакеты, как express или react.

Добавить зависимость производства в проект так же просто, как и зависимости разработки, но вместо devDependencies их следует помещать ​​в раздел dependencies:

Глобальная установка зависимостей

Иногда бывает необходимо установить пакет вне текущего проекта, чтобы он был доступен для всех проектов в текущей системе. Такие пакеты устанавливаются глобально. Чаще всего они включают утилиты, которые необходимо запускать вместе с другими утилитами командной строки:

Удаление зависимости из проекта

В жизни каждого проекта наступает момент, когда зависимость, которая когда-то казалась жизненно необходимой, больше не выполняет никакой функции. В таком случае всегда лучше удалить код (при условии, что вы все хорошо протестировали и уверены, что после удаления ничего не сломается).

Чтобы удалить из проекта зависимость разработки или производства, используйте:

Это удалит пакеты из node_modules, а также уберет зависимость из package.json. Некоторые версии этих команд также показывают обновления файла.

Глобальное удаление пакета

Удаление глобально установленного пакета выполняется так же, как удаление пакета из проекта, только вы должны передать аргумент global (его же мы использовали при глобальной установке).

Как я могу удалить пряжу? Я использовал его для проекта, ориентированного на реакцию, и теперь всякий раз, когда я извлекаю код, index.ios.js или index.android.js он выдает ошибку, я хотел бы просто использовать npm, но всякий раз, когда я инициализирую проект, ориентированный на реакцию, по умолчанию используется yarn. Я пробовал, npm uninstall yarn но это не сработало. Спасибо.

Возможно, вам придется удалить связанные файлы. Как файл блокировки пряжи и т. Д. Вы должны удалить это с помощью программы, которую вы использовали при установке. npm list -g --depth = 0 показывает ваши глобальные пакеты npm. В моей ситуации я установил yarn with brew на MacOS, поэтому brew uninstall yarn у меня все

Зависит от того, как вы его установили :

заваривать : brew uninstall yarn

tarball : rm -rf "$HOME/.yarn"

npm : npm uninstall -g yarn

убунту : sudo apt-get remove yarn && sudo apt-get purge yarn

centos : yum remove yarn

окна : choco uninstall yarn

npm uninstall -g yarn не работает. Он просто сообщает up to date in 0.067s и ничего не делает. Я пробовал все эти подходящие (unbuntu), но получаю $ eslint bash: /home/. /.yarn/bin/eslint: No such file or directory Чтобы ответить на мой собственный вопрос - используйте, hash -r чтобы очистить хеш bash и избежать перезапуска оболочки. что это ? "windows" "npm" . npm уже находится в windows! наверное ты имел ввиду choco? вы возитесь с ОС с другими пакетами . беспорядок . @Vince Может быть, у вас Windows? Если это так, посмотрите ответы Алиреза Фаттахи и Раджи Рахула о том, как решить проблему, о которой вы упомянули.

Попробуйте это, он хорошо работает на macOS:

Абсолютно самый полезный ответ! Пробовал все другие предложения по удалению пряжи и не мог найти ее, пока не нашел which yarn

Я не видел ответа, который сработал для меня, поэтому вот он: в моей системе OSX я нашел пряжу в

/.yarn/bin/yarn . rm -rf

/.yarn позаботился об этом.

в Windows: перейдите к «Добавить или удалить программы» на панели управления (или откройте меню «Пуск» и выполните поиск по запросу «удалить программу»)

Если вы установили с brew, попробуйте brew uninstall yarn в терминале. Также не забудьте удалить информацию о пути пряжи в вашем .bash_profile .

Я использую macOS. У меня было несколько версий yarn, установленных вместе с Homebrew, которые я удалил brew uninstall --force yarn . Затем я установил последнюю версию 1.7.0 Yarn с помощью Homebrew. brew install yarn

Но все же, когда я запустился which yarn , он вернул /Users/Me/.yarn/bin/yarn и yarn --version вернул 0,24.6. В

/ .bash_profile не было упоминания о Yarn, но мой файл

/ .bashrc содержал строку, export PATH="$HOME/.yarn/bin:$PATH" указывающую, что я должен был ранее установить Yarn глобально, но я хотел использовать только последнюю версию, которую я только что установил с Homebrew.

Поэтому я удалил Yarn глобально, запустив npm uninstall -g yarn; rm -rf

/.yarn , а затем отредактировав файл

/ .bashrc, изменив строку на export PATH="/usr/local/bin/yarn:$PATH" и запустив, source

/.bashrc чтобы обновить PATH в сеансе терминала. Затем, когда я запускал, which yarn он возвращал / usr / local / bin / yarn, а когда я запускал, yarn --version он возвращал 1.7.0

Этот ответ чрезвычайно полезен для пользователей Mac

Я нашел пряжу установленной в:

Я сбежал yarn global remove yarn . Перезагрузил терминал, и он исчез.

Изначально то, что привело меня сюда, было возвращением пряжи к более старой версии, но я не знал почему, и попытки удалить или обновить не удались.

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

Даже после принятия мер по удалению пряжи она осталась, а у 0.19.1 .

Если вы установили пряжу глобально, как это

Просто запустите это в терминале

Протестировано сейчас на моем локальном компьютере под управлением Ubuntu. Отлично работает!

Протестировано сейчас на моем локальном компьютере под управлением Ubuntu и вообще ничего не делал. Он сообщает up to date in 0.067s , но больше ничего не делает.

Что я сделал на своей стороне:

Зашел в /usr/local/lib/node_modules и удалил yarn папку внутри него.

npm uninstall yarn удаляет пакеты yarn, которые устанавливаются через npm, но то, что yarn делает под капотом, - это установка программного обеспечения с именем yarn на ваш компьютер. Если вы установили в Windows, перейдите, чтобы добавить или удалить программы, а затем найдите пряжу и удалите ее, тогда все готово.

На моем Mac ни один из этих обычных методов удаления Yarn не работал:

заварить: brew uninstall yarn

NPM: npm uninstall -g yarn

Вместо этого я удалил его вручную, набрав rm -rf

/.yarn (спасибо пользователю elthrasher) и удалите два символа ссылки пряжу и yarnpkg из usr/local/bin . Впоследствии brew install yarn дал мне последнюю версию Yarn.

Для пользователя Windows:

Просто используйте файл установщика (например, yarn-1.22.4.msi в моем случае), чтобы удалить yarn .

Как только вы откроете программу установки, вы получите три варианта: установить, отремонтировать и удалить yarn с вашего компьютера. Выберите « Удалить», и все файлы пряжи будут удалены с вашего компьютера.

Попробуйте " npm uninstall -g yarnpkg " ( глобальный ) или " npm uninstall yarnpkg " ( локальный ), если вы установили его с помощью npm .
Это то, что у меня сработало.
Если это по-прежнему не работает и вы установили его с помощью npm,
выполните " npm list -g ", чтобы проверить, установили ли вы его глобально или " npm list " если вы установили его локально.
Надеюсь, что это поможет любому, у кого есть эта проблема. : D

РЕДАКТИРОВАТЬ: нашел что-то, если вы установили пряжу с исполняемым файлом .msi, вам нужно установить его обычным способом Windows.

Это ничего не делает (прямо как npm uninstall -g yarn ). Я установил пряжу глобально, но npm list -g не показывает ничего, что содержит строку yarn . Это работает для меня , где npm uninstall -g yarn не было

Мне пришлось вручную удалить (удалить) Yarn папку с диска, а затем npm uninstall -g yarn снова запустить ее, чтобы переустановить. У меня это сработало.

Если после удаления

/ .yarn по-прежнему возникают ошибки о том, что файлы не найдены, не забудьте удалить rc-файл yarn:

удалить пакет npm

Этот вопрос касается того, как удалить сам Yarn. Ваш ответ показывает только, как удалить пакет, который был глобально установлен с помощью Yarn.

Я не мог удалить пряжу в окнах, и я пробовал здесь все ответы, но каждый раз, когда я запускал yarn -v , команда работала. Но потом я понял, что есть еще одна вещь, которая может повлиять на это.

Если вы работаете в Windows и используете nvm , одна проблема может заключаться в том , что вы установили nvm без удаления npm, а рабочая yarn команда взята из вашей старой версии пряжи из старого npm.

Итак, что вам нужно сделать, это выполнить этот шаг из документации nvm

Вы также должны удалить существующее место установки npm (например, «C: \ Users <user> \ AppData \ Roaming \ npm»), чтобы вместо него правильно использовалось место установки nvm. Сделайте резервную копию глобальной конфигурации npmrc (например, C: \ Users & lt; user> \ AppData \ Roaming \ npm \ etc \ npmrc), если у вас есть некоторые важные настройки, или скопируйте настройки в конфигурацию пользователя C: \ Users & lt; user>. npmrc.

Есть ли команда для удаления всех глобальных модулей npm? Если нет, что вы предлагаете?

Следующая команда удаляет все глобальные модули npm. Примечание: это не работает в Windows. Для работающей версии Windows, см . Ответ Олли Беннетта .

Вот как это работает:

  • npm ls -gp --depth=0 выводит список всех глобальных модулей верхнего уровня (см. документацию по cli для ls )
  • awk -F/ '/node_modules/ && !/\/npm$/ ' печатает все модули, которые на самом деле не являются npm (не заканчиваются /npm )
  • xargs npm -g rm удаляет все модули глобально, которые приходят по предыдущему каналу
Чтобы не быть игроком в гольф awk, это можно сделать одной командой awk без grep: awk -F' |@' '/@/ >' Объяснение: разделить пробелами или @, сопоставлять только строки с @, имя модуля будет соответствовать последнему совпадению ( $(NF-1) ), поэтому печатать только если это не так npm Предупреждение: новая версия не отфильтровывает модуль npm. Вы не хотите удалить это. Ух ты. NPM не позволяет легко удалять вещи. С бандлером и гемами тривиально удалить все, тот факт, что вы должны использовать grep, и это ужасный дизайн. Есть ли более простой способ сделать это? Кто на самом деле помнит код, требуемый в ответе? @neverfox и другие: исправлено, сам npm больше не удаляется. Приносим извинения за неудобства

Для тех, кто использует Windows , самый простой способ удалить все глобально установленные пакеты npm - это удалить содержимое:

Вы можете быстро туда добраться, набрав %appdata%/npm в проводнике, в командной строке или в меню «Пуск».

Спасибо за это, как насчет npm-кеша, я должен удалить это также? В более поздних версиях npm это, кажется, перенесено %USERPROFILE%\AppData\npm без roaming . Я переустанавливал все пакеты, я столкнулся с ошибками EINTEGRITY при запуске npm install снова. Я должен был также удалить свой package-lock.json файл. для тех, кто в Windows использует scoop, путь: C: \ Users \ имя пользователя \ scoop \ apps \ nodejs \ current \ bin \ node_modules

Я попробовал решение Кая Стернада , но оно показалось мне несовершенным. После самого последнего awk дерева deps осталось много специальных символов .

Итак, я придумал собственную модификацию решения Кая Стернада (с небольшой помощью от идеи кашемира ):

npm ls -gp --depth=0 перечисляет все глобально установленные модули npm в разбираемом формате:

awk -F/node_modules/ '' извлекает имена модулей из путей, формируя список всех глобально установленных модулей.

grep -vE '^(npm|)$' удаляет сам npm и пустые строки.

xargs -r npm -g rm вызовы npm -g rm для каждого модуля в списке.

Как и решение Kai Sternad , оно будет работать только под * nix.

Пряжа создает yarn.lock файл после выполнения yarn install .

Должно ли это быть зафиксировано в хранилище или проигнорировано? Для чего это?

Да, вы должны проверить это, см. Миграция с npm

Yarn сгенерирует файл yarn.lock в корневом каталоге вашего пакета. Вам не нужно читать или понимать этот файл - просто проверьте его в системе контроля версий.

Хорошая находка. Я нашел следующее из их документов, которые отвечают «для чего он нужен?»: «Клиент npm устанавливает зависимости в каталог node_modules недетерминированно. Это означает, что на основе установленных зависимостей порядка, структура node_modules каталог может отличаться от одного человека к другому. Эти различия могут привести к ошибкам «работ на моей машине», на поиск которых уходит много времени ». Продолжение: «Yarn решает эти проблемы, связанные с управлением версиями и недетерминированностью, используя файлы блокировки и алгоритм установки, который является детерминированным и надежным. Эти файлы блокировки привязывают установленные зависимости к определенной версии и гарантируют, что каждая установка приводит к точно такой же файловой структуре в node_modules на всех машинах. " Вместо того, чтобы говорить "файл блокировки не найден". Надо просто сказать «Генерация файла yarn.lock». Дух :) Это не ошибка, но первое звучит как ошибка. И последний будет достаточно тревожным для любого в обратном сценарии (где они ожидают иметь файл yarn.lock, но, очевидно, не имеют). Я ценю, что yarn.lock блокирует наш проект для определенных версий пакетов, но я чувствую, что использование слова «блокировка» является неудачным. Обычно блокирующие файлы (такие как .ldb ) являются средством ограничения ресурса одним процессом за раз, чтобы предотвратить повреждение, которое может привести к появлению промежуточных обновлений. Такие файлы блокировок определенно не должны быть привязаны к контролю версий, что, возможно, является причиной большинства недоразумений относительно yarn.lock. Мне действительно не нравится фраза "вам не нужно читать или понимать этот файл". Это важный файл для поддержки вашего проекта.

Зависит от того, что ваш проект:

  1. Ваш проект - приложение? Тогда: да
  2. Ваш проект - библиотека? Если так: нет

Более подробное описание этого можно найти в этом выпуске GitHub, где, например, один из создателей Yarn. говорит:

В package.json описываются предполагаемые версии, требуемые первоначальным автором, а в yarn.lock описывается последняя известная исправная конфигурация для данного приложения.

yarn.lock Будет использован только -файл проекта верхнего уровня. Таким образом, если только один проект не будет использоваться автономно и не будет установлен в другом проекте, тогда нет смысла фиксировать любой yarn.lock -file - вместо этого он всегда будет до package.json -file, чтобы сообщать, какие версии зависимостей ожидает проект.

С другой стороны, не повлияет ли наличие файла блокировки в библиотечных проектах на воспроизводимость соответствующих тестов? Если я правильно прочитал ваше описание, то "Является ли ваш проект библиотекой?" можно ответить «Если хочешь». Похоже, у него нет недостатков, но он может быть полезен, если у вас есть сложные devDependencies и вы хотите, чтобы у каждого разработчика вашей библиотеки были одинаковые сборки и тестируемые скрипты. Правильно? Поскольку файл блокировки не будет соблюдаться ни одним из пользователей вашей библиотеки, то полагаться на него при разработке библиотеки может дать ложное чувство безопасности Дарт имеет ту же систему с pubspec.yaml и pubspec.lock и рекомендует то же, что и в ответе. Смотрите этот вопрос и эту запись документации. Пожалуйста, смотрите эту запись в официальном блоге Yarn: файлы блокировки должны быть зафиксированы во всех проектах

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

Вы должны зафиксировать файл в репо?

Да. Как упомянуто в ответе ckuijjer, в Руководстве по миграции рекомендуется включить этот файл в репозиторий. Читайте дальше, чтобы понять, почему вам нужно это сделать.

Что такое yarn.lock ?

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

Чтобы понять, зачем нужен этот файл, сначала нужно понять, в чем была проблема оригинального NPM package.json . Когда вы устанавливаете пакет, NPM будет хранить диапазон разрешенных ревизий зависимости вместо конкретной ревизии (semver). NPM будет пытаться получить обновление самой последней версии зависимости в указанном диапазоне (т. Е. Обновления исправлений без прерываний). У этого подхода есть две проблемы.

Авторы зависимостей могут выпускать обновления версий исправлений, хотя на самом деле вносят существенные изменения, которые повлияют на ваш проект.

Два разработчика, работающие npm install в разное время, могут получить различный набор зависимостей. Что может привести к невозможности воспроизведения ошибки в двух абсолютно одинаковых средах. Это может вызвать проблемы стабильности сборки для серверов CI, например.

Читайте также: