Как полностью удалить node js
Перейти к содержимому

Как полностью удалить node js

  • автор:

Rukovodstvo

статьи и идеи для разработчиков программного обеспечения и веб-разработчиков.

Как удалить Node.js из Mac OSX

Если вы читали один из моих предыдущих постов о том, как установить Node.js [http://stackabuse.com/how-to-install-node-js-on-ubuntu/], вы, вероятно, заметили, что существует довольно много способов установите его на свой компьютер. Это может быть из диспетчера пакетов, из исходного кода или из предварительно скомпилированного двоичного дистрибутива. Итак, что вы делаете, когда хотите удалить Node.js? Здесь я опишу несколько способов удалить его с компьютера Mac OSX. Просто имейте в виду, что эти команды удаляют N

Время чтения: 3 мин.

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

Здесь я опишу несколько способов удалить его с компьютера Mac OSX. Просто имейте в виду, что эти команды удаляют исполняемый файл Node, а не обязательно все проекты Node или кеш NPM.

Вручную

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

Чтобы полностью удалить исполняемый файл node npm , вот несколько инструкций о том, что делать:

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

  • Удалите node и / или node_modules из /usr/local/lib
  • Удалите node и / или node_modules из /usr/local/include
  • Удалите node , node-debug и node-gyp из /usr/local/bin
  • Удалите .npmrc из вашего домашнего каталога (это ваши настройки npm, не удаляйте их, если вы планируете сразу же переустановить Node)
  • Удалите .npm из вашего домашнего каталога
  • Удалите .node-gyp из вашего домашнего каталога
  • Удалите .node_repl_history из вашего домашнего каталога
  • Удалите node* из /usr/local/share/man/man1/
  • Удалите npm* из /usr/local/share/man/man1/
  • Удалите node.d из /usr/local/lib/dtrace/
  • Удалить node из /opt/local/bin/
  • Удалить node из /opt/local/include/
  • Удалите node_modules из /opt/local/lib/
  • Удалить node из /usr/local/share/doc/
  • Удалите node.stp из /usr/local/share/systemtap/tapset/

Этот список должен включать почти все ссылки на Node в вашей системе. Имейте в виду, что их может быть больше. Пожалуйста, дайте мне знать, если вы найдете другие (и как вы изначально установили Node)!

Домашнее пиво

Метод Homebrew, возможно, является одним из самых простых способов включить и выключить Node в вашей системе. Команда для ее удаления так же проста, как и команда для ее установки. Предполагая, что вы использовали brew install node для его установки, просто выполните это, чтобы избавиться от него:

 $ brew uninstall node 

Вот и все! Все следы исполняемого файла исчезнут из вашей системы.

NVM

Диспетчер версий узлов (NVM) почти так же удобен, как Homebrew, но по-другому. Он позволяет вам установить несколько версий Node в вашей системе, чтобы вы могли легко переключаться с одной на другую.

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

 $ nvm uninstall

И полный пример этого может быть примерно таким:

 $ nvm uninstall v0.12.2 

И теперь будет удалена только версия Node v0.12.2 . Имейте в виду, что если у вас было установлено несколько версий, то Node все равно будет в вашей системе, но не v0.12.2 (используя приведенный выше пример).

Фантомные установки

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

Мы можем использовать это, чтобы узнать, где в вашей системе установлен Node. Вы можете попробовать это с помощью:

 $ which node /Users/scott/.nvm/versions/node/v4.1.2/bin/node 

Вы можете видеть в выходных данных, что моя node связана с версией NVM, хотя ваша может находиться где-то еще. Теперь я могу использовать эту информацию, чтобы удалить его.

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

Licensed under CC BY-NC-SA 4.0

Добавление и удаление зависимости в приложении Node.js [8 из 26]

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

Полный курс «Intro to Node.js» в Microsoft Learn: https://aka.ms/LearnNode.js

Просмотрите всю серию: https://aka.ms/NodeBeginnerSeries

Дополнительные ресурсы:

— Visual Studio Code: https://code.visualstudio.com

— Серия начинающих в JavaScript: https://aka.ms/JSBeginnerSeries

#NodeJS #Tutorial #Beginners #JavaScript #Express

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

Полный курс «Intro to Node.js» в Microsoft Learn: https://aka.ms/LearnNode.js

Просмотрите всю серию: https://aka.ms/NodeBeginnerSeries

Дополнительные ресурсы:

Как удалять node.js в Ubuntu Linux?

У меня на dev компьютере стоит Ubuntu 20.04 и NodeJS 14.xx
Решил обновиться до NodeJS 15.xx (она на днях уже стала доступна, это не LTS версия).

В мире JavaScript я можно сказать новичёк.
Есть не приятное «ощущение» что я, что-то не так делаю:

Установку NodeJS 14 делал согласно инструкциям с официального сайта:

curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash - sudo apt install -y nodejs

Для того чтобы обновиться на 15-ую версию, решил удалить сначала 14-ую весию:
sudo apt remove nodejs

В результате выполнения команды, получил такие предупреждения:

Reading package lists. Done Building dependency tree Reading state information. Done The following package was automatically installed and is no longer required: libutempter0 Use 'sudo apt autoremove' to remove it. The following packages will be REMOVED: nodejs 0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded. After this operation, 120 MB disk space will be freed. Do you want to continue? [Y/n] y (Reading database . 225795 files and directories currently installed.) Removing nodejs (14.14.0-deb-1nodesource1) . dpkg: warning: while removing nodejs, directory '/usr/lib/node_modules/npm/node_modules/gentle-fs' not empty so not removed dpkg: warning: while removing nodejs, directory '/usr/lib/node_modules/npm/node_modules/cliui/node_modules/strip-ansi' not empty so not removed dpkg: warning: while removing nodejs, directory '/usr/lib/node_modules/npm/node_modules/cliui/node_modules/ansi-regex' not empty so not removed dpkg: warning: while removing nodejs, directory '/usr/lib/node_modules/npm/node_modules/cliui/node_modules/string-width' not empty so not removed dpkg: warning: while removing nodejs, directory '/usr/lib/node_modules/npm/node_ modules/cliui/node_modules/is-fullwidth-code-point' not empty so not removed dpkg: warning: while removing nodejs, directory '/usr/lib/node_modules/npm/node_ modules/require-main-filename' not empty so not removed dpkg: warning: while removing nodejs, directory '/usr/lib/node_modules/npm/node_ modules/minimist' not empty so not removed dpkg: warning: while removing nodejs, directory '/usr/lib/node_modules/npm/node_ modules/libnpx' not empty so not removed dpkg: warning: while removing nodejs, directory '/usr/lib/node_modules/npm/node_ modules/configstore' not empty so not removed dpkg: warning: while removing nodejs, directory '/usr/lib/node_modules/npm/node_ modules/get-caller-file' not empty so not removed dpkg: warning: while removing nodejs, directory '/usr/lib/node_modules/npm/node_ modules/wrap-ansi/node_modules/strip-ansi' not empty so not removed dpkg: warning: while removing nodejs, directory '/usr/lib/node_modules/npm/node_ modules/wrap-ansi/node_modules/ansi-regex' not empty so not removed dpkg: warning: while removing nodejs, directory '/usr/lib/node_modules/npm/node_ modules/wrap-ansi/node_modules/string-width' not empty so not removed dpkg: warning: while removing nodejs, directory '/usr/lib/node_modules/npm/node_ modules/wrap-ansi/node_modules/is-fullwidth-code-point' not empty so not removed dpkg: warning: while removing nodejs, directory '/usr/lib/node_modules/npm/node_ modules/dot-prop' not empty so not removed dpkg: warning: while removing nodejs, directory '/usr/lib/node_modules/npm/node_ modules/bin-links' not empty so not removed dpkg: warning: while removing nodejs, directory '/usr/lib/node_modules/npm/node_ modules/yargs/node_modules/strip-ansi' not empty so not removed dpkg: warning: while removing nodejs, directory '/usr/lib/node_modules/npm/node_ modules/yargs/node_modules/ansi-regex' not empty so not removed dpkg: warning: while removing nodejs, directory '/usr/lib/node_modules/npm/node_ modules/yargs/node_modules/locate-path' not empty so not removed dpkg: warning: while removing nodejs, directory '/usr/lib/node_modules/npm/node_ modules/yargs/node_modules/p-try' not empty so not removed dpkg: warning: while removing nodejs, directory '/usr/lib/node_modules/npm/node_ modules/yargs/node_modules/p-locate' not empty so not removed dpkg: warning: while removing nodejs, directory '/usr/lib/node_modules/npm/node_ modules/yargs/node_modules/find-up' not empty so not removed dpkg: warning: while removing nodejs, directory '/usr/lib/node_modules/npm/node_ modules/yargs/node_modules/string-width' not empty so not removed dpkg: warning: while removing nodejs, directory '/usr/lib/node_modules/npm/node_ modules/yargs/node_modules/is-fullwidth-code-point' not empty so not removed dpkg: warning: while removing nodejs, directory '/usr/lib/node_modules/npm/node_ modules/yargs/node_modules/p-limit' not empty so not removed dpkg: warning: while removing nodejs, directory '/usr/lib/node_modules/npm/node_ modules/meant' not empty so not removed dpkg: warning: while removing nodejs, directory '/usr/lib/node_modules/npm/node_ modules/yargs-parser/node_modules/camelcase' not empty so not removed dpkg: warning: while removing nodejs, directory '/usr/lib/node_modules/npm/node_ modules/npm-registry-fetch' not empty so not removed dpkg: warning: while removing nodejs, directory '/usr/lib/node_modules/npm/node_ modules/emoji-regex' not empty so not removed dpkg: warning: while removing nodejs, directory '/usr/lib/node_modules/npm/node_ modules/npm-lifecycle' not empty so not removed dpkg: warning: while removing nodejs, directory '/usr/lib/node_modules/npm/node_ modules/npm-audit-report' not empty so not removed dpkg: warning: while removing nodejs, directory '/usr/lib/node_modules/npm/node_ modules/libcipm' not empty so not removed dpkg: warning: while removing nodejs, directory '/usr/lib/node_modules/npm/docs' not empty so not removed dpkg: warning: while removing nodejs, directory '/usr/lib/node_modules/npm/lib' not empty so not removed Processing triggers for man-db (2.9.1-1) . 

NodeJs удалилась. NPM также удалилась (сужу по результату команд: which nodejs which npm)
При этом осталась директория с файликами:

ls /usr/lib/node_modules/npm CHANGELOG.md changelogs CONTRIBUTING.md docs lib LICENSE node_modules npmrc README.md

Вопрос: Как правильно делать удаление (и/или апгрейд на новую версию) NodeJS ?
Спасибо!

  • Вопрос задан более трёх лет назад
  • 3354 просмотра

delete

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

delete object.property delete object['property'] delete object[index] delete property // удаляет свойства глобального объекта, или, // используя инструкцию with, свойства объекта, на который ссылается инструкция

Если результат вычисления выражения не является свойством (объекта), delete ничего не делает.

Параметры

Имя объекта или выражение, результатом вычисления которого является объект.

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

Возвращаемое значение

Возвращает false, только если свойство существует в самом объекте, а не в его прототипах, и не может быть удалено. Во всех остальных случаях возвращает true.

Описание

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

delete эффективен только применительно к свойствам объектов. Он не оказывает никакого влияния на имена переменных и функций. Присвоение значения свойству без указания объекта (без оператора var) иногда неверно характеризуется, как глобальная переменная, (например x = 5 ). На самом деле происходит присвоение значения свойству глобального объекта.

delete не может удалить определённые свойства встроенных объектов (таких как Object, Array, Math и так далее). В спецификации ECMA-262 они обозначены как DontDelete.

= 42; // создаёт свойство x в глобальном объекте var y = 43; // объявляет новую переменную, y myobj = >; myobj.h = 4; // создаёт свойство h в myobj myobj.k = 5; // создаёт свойство k в myobj delete x; // возвращает true (x - свойство глобального объекта и может быть удалено) delete y; // возвращает false (delete не влияет на имена переменных) delete Math.PI; // возвращает false (delete не влияет на определённые встроенные свойства) delete myobj.h; // возвращает true (свойства, определённые пользователем могут быть удалены) with (myobj)  delete k; // возвращает true (эквивалентно delete myobj.k) > delete myobj; // возвращает true (myobj это свойство глобального объекта, не переменная, поэтому может быть удалено) 

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

function Foo() > Foo.prototype.bar = 42; var foo = new Foo(); delete foo.bar; // возвращает true, но безрезультатно, так как bar - наследуемое свойство alert(foo.bar); // выводит 42, свойство все ещё наследуется delete Foo.prototype.bar; // удаляет свойство из прототипа alert(foo.bar); // выводит "undefined", свойство больше не наследуется 

Удаление элементов массива

Когда с помощью оператора delete удаляется элемент массива, длина массива не меняется. Например, если вы удалите a[3] , a[4] по прежнему a[4] , а a[3] не определено. Так будет даже если вы удалите последний элемент массива ( delete a[a.length-1] ).

Когда оператор delete удаляет элемент массива, этот элемент больше не существует в массиве. В следующем примере, trees[3] удаляется с помощью delete .

const trees = ["redwood", "bay", "cedar", "oak", "maple"]; delete trees[3]; console.log(3 in trees); // false 

Если вы хотите, чтобы элемент массива существовал, но имел значение undefined, используйте значение undefined вместо оператора delete . В следующем примере, trees[3] принимает значение undefined, но элемент массива все ещё существует:

const trees = ["redwood", "bay", "cedar", "oak", "maple"]; trees[3] = undefined; console.log(3 in trees); // true 

Проблема кроссбраузерности

Несмотря на то, что стандарт ECMAScript оставляет порядок итерации по свойствам объектов на усмотрение реализующей стороны, может оказаться так, что все основные браузеры поддерживают порядок итерации, основанный на принципе «свойство добавленное в объект раньше идёт раньше» (по крайней мере для свойств не находящихся в прототипе). Однако, в случае с Internet Explorer, когда кто-нибудь использует delete с каким-либо свойством, это приводит к некоторым неожиданным результатам, заставляя другие браузеры отказаться от использования простых объектов, таких как литералы объектов, в качестве ассоциативных массивов. В Internet Explorer, когда значение свойства установлено в undefined, после удаления этого свойства, если кто-нибудь позже добавит свойство с таким же именем, оно окажется в своей старой позиции, а не в конце итерационной последовательности, как ожидается.

Поэтому, если вы хотите симулировать упорядоченный ассоциативный массив в кроссбраузерной среде, вам придётся либо использовать два отдельных массива (один для ключей и один для значений), либо построить массив из объектов с одним свойством и так далее.

Внешние ссылки

  • Глубокий анализ оператора delete

Found a content problem with this page?

  • Edit the page on GitHub.
  • Report the content issue.
  • View the source on GitHub.

This page was last modified on 7 авг. 2023 г. by MDN contributors.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *