Я вижу, как несколько человек задают одни и те же вопросы о попытке запустить 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 запускает версию узла, которой нет на моей машине
@Фил Извини, что нет - я побежал node -p process.execPath
, и он вернулся /Users/me/.nvm/versions/node/v16.13.2/bin/node
. Бег /usr/bin/env node -v
вернулся v16.13.2
.
А как насчет which npx
? Он должен быть на том же пути, что и node
. Для меня это ~/.nvm/versions/node/v16.14.2/bin/npx
brew list | grep 'node'
возвращает какие-либо результаты? (если вы установили Node через Homebrew)
Единственным решением, которое сработало для меня, было удаление node
и nvm
через интерфейс командной строки и вручную. nvm больше не нужен в моей системе, так как предыдущие версии узла предназначались для устаревших проектов, над которыми я больше не работаю.
Решение CLI (в основном с использованием Homebrew) обсуждается во многих местах на SO, в том числе здесь , а также вручную во многих местах в Интернете, особенно здесь.
Проблема заключается в конфликте остаточной информации о версии. Решение состоит в том, чтобы полностью удалить ваш 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-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
Если ваш 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>
На вопрос уже был дан ответ, в основном с использованием методов, которые вы описываете.
Похоже,
npx
не использует версиюnvm
Node. Вероятно, этоPATH
проблема с заказом