Create-react-app сообщает, что запущена удаленная версия узла

Я вижу, как несколько человек задают одни и те же вопросы о попытке запустить create-react-app, которые затем утверждают, что работает более старая версия Node, хотя я удалял ее через nvm несколько раз. Вот один из примеров моих попыток выбрать более позднюю версию узла, который я уже установил:

Mac:react me$ nvm install v16.13.2
v16.13.2 is already installed.
Now using node v16.13.2 (npm v8.1.2)
Mac:react me$ npx create-react-app@latest my-app
You are running Node 12.14.1.
Create React App requires Node 14 or higher. 
Please update your version of Node.
Mac:react me$ npm uninstall -g v12.14.1

up to date, audited 1 package in 317ms

found 0 vulnerabilities
Mac:react me$ nvm use 16.13.2
Now using node v16.13.2 (npm v8.1.2)
Mac:react me$ npx create-react-app@latest my-app
You are running Node 12.14.1.
Create React App requires Node 14 or higher. 
Please update your version of Node.
Mac:react me$ 

Я использую High Sierra, поэтому не могу обновиться до последней/лучшей версии node, но, насколько я понимаю, мне и не нужно. Как мне это исправить, чтобы я мог запустить create-react-app в своей системе? Заранее большое спасибо за вашу помощь.

Похоже, npx не использует версию nvm Node. Вероятно, это PATH проблема с заказом

Phil 14.02.2023 02:16

Отвечает ли это на ваш вопрос? npx запускает версию узла, которой нет на моей машине

Phil 14.02.2023 02:17

@Фил Извини, что нет - я побежал node -p process.execPath, и он вернулся /Users/me/.nvm/versions/node/v16.13.2/bin/node. Бег /usr/bin/env node -v вернулся v16.13.2.

jimiayler 14.02.2023 02:27

А как насчет which npx? Он должен быть на том же пути, что и node. Для меня это ~/.nvm/versions/node/v16.14.2/bin/npx

Phil 14.02.2023 02:57

brew list | grep 'node' возвращает какие-либо результаты? (если вы установили Node через Homebrew)

Wesley LeMahieu 14.02.2023 04:48
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
5
101
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

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

Решение CLI (в основном с использованием Homebrew) обсуждается во многих местах на SO, в том числе здесь , а также вручную во многих местах в Интернете, особенно здесь.

Проблема заключается в конфликте остаточной информации о версии. Решение состоит в том, чтобы полностью удалить ваш node+npm.

  1. Ручной метод
  • Удалите все node и node_modules из каталога /usr/local/lib
  • После этого удалите все node и node_modules из каталога /usr/local/include
  • Удалите node , node-debug и node-gyp из каталога /usr/local/bin
  • Удалить .npmrc, .npm, .node-gyp, .node_repl_history с домашнего пути
  • Удалить node*,npm* с пути /usr/local/share/{username}
  • Удалить node из путей /opt/local/bin,opt/local/include,/usr/local/share/doc
  • Удалить node_modules из opt/local/lib
  • Удалить node.stp из пути /usr/local/share/systemtap/tapset
  • Обратите внимание: ИЗМЕНИТЕ собственный путь к каталогу в следующих кодах.
sudo rm -rf /opt/local/bin/node /opt/local/include/node /opt/local/lib/node_modules
sudo rm -rf /usr/local/bin/npm /usr/local/share/{username}/node.1 /usr/local/lib/dtrace/node.d

sudo rm -rf /usr/local/{lib/node{,/.npm,_modules},bin,share/{username}}/{npm*,node*,{username}/node*}

sudo rm -rf /usr/local/bin/npm /usr/local/share/{username}/node* /usr/local/lib/dtrace/node.d ~/.npm ~/.node-gyp
  1. Метод доморощенного и nvm

Если ваш Nodejs установлен через $ brew install node, то

#unintall
brew uninstall node;
brew cleanup;
rm -f /usr/local/bin/npm /usr/local/lib/dtrace/node.d;
rm -rf ~/.npm;
#install
brew install node;
which node 
export NODE_PATH='/usr/local/lib/node_modules'

Node Version Manager (NVM) похож на Homebrew. nvm — это инструмент для управления различными node версиями. Если вы хотите удалить определенную версию node, вы можете запустить:

$nvm uninstall <version>

На вопрос уже был дан ответ, в основном с использованием методов, которые вы описываете.

jimiayler 21.02.2023 01:46

Другие вопросы по теме