Почему моя версия npm не работает на Mac для React Native?

New to React Native Я обязательно установил node.js отсюда и после установки, мне сказали:

Node.js v9.5.0 to /usr/local/bin/node
npm v5.6.0 to /usr/local/bin/npm

Я могу проверить версию узла:

node --version: v9.5.0

Я начал запускать документацию для npm install:

npm install -g create-react-native-app

а также ссылки на building projects и установленный сторож с заваркой:

watchman 4.9.0

в терминале побежал: npm install -g react-native-cli и terminal: npm start и я получаю:

grim ~/react-native/react-native npm start

> react-native@1000.0.0 start /Users/grim/React-Native/react-native
> /usr/bin/env bash -c './scripts/packager.sh "$@" || true' --

module.js:557
 throw err;
 ^

Error: Cannot find module 'graceful-fs'
 at Function.Module._resolveFilename (module.js:555:15)
 at Function.Module._load (module.js:482:25)
 at Module.require (module.js:604:17)
 at require (internal/module.js:11:18)
 at Object.<anonymous> (/Users/grim/React-Native/react-native/local-cli/cli.js:12:1)
 at Module._compile (module.js:660:30)
 at Object.Module._extensions..js (module.js:671:10)
 at Module.load (module.js:573:32)
 at tryModuleLoad (module.js:513:12)
 at Function.Module._load (module.js:505:3)
grim ~/react-native/react-native 
</anonymous>

После исследования я нашел NPM, не могу найти "изящные fs", независимо от того, что я делаю и в терминале бежал:

sudo npm install -g graceful-fs

и получить:

+ graceful-fs@4.1.11
added 1 package in 0.678s

но когда я запускаю npm install я получаю:

npm ERR! code EUNSUPPORTEDPROTOCOL
npm ERR! Unsupported URL Type "npm:": npm:babylon@^7.0.0-beta
npm WARN deprecated gulp-util@3.0.8: gulp-util is deprecated - replace it, following the guidelines at https://medium.com/gulpjs/gulp-util-ca3b1f9f9ac5

npm ERR! A complete log of this run can be found in:
npm ERR! /Users/grim/.npm/_logs/2018-02-08T17_08_50_619Z-debug.log

и в журнале файлов это показывает:

116 error code EUNSUPPORTEDPROTOCOL
117 error Unsupported URL Type "npm:": npm:babylon@^7.0.0-beta

поэтому я пошел к проблеме с gulp-util, но когда я это сделаю:

npm ls gulp-util

Я получаю └── (empty).

Дальнейшие исследования я нашел Почему моя установка npm не работает? но это бросает npm ERR! Что я делаю неправильно, и как я могу получить npm успешно установлен на моем Mac, работающем в Seirra?

Это вызвало попытку протестировать RNTester из реагирующего родного репо, и он сказал мне:

git clone https://github.com/facebook/react-native.git
cd react-native
npm install

редактировать

По предлагаемому ответу уже пробовал brew install node и сказал с предупреждающим node 9.5.0 is already installed так, что попробовал brew link node затем запросил:

grim ~/react-native/react-native brew link node
Linking /usr/local/Cellar/node/9.5.0... 
Error: Could not symlink bin/node
Target /usr/local/bin/node
already exists. You may want to remove it:
 rm '/usr/local/bin/node'

To force the link and overwrite all conflicting files:
 brew link --overwrite node

To list all files that would be deleted:
 brew link --overwrite --dry-run node

поэтому запустил brew link --overwrite node.

редактировать

Просмотр через мои файлы в разделе Users/grim Я нашел каталог с модулями в нем с именем node_modules может быть не в том месте?

редактировать

После дальнейших исследований я нашел исправление npm на Mac OS X для пользователей Homebrew и запустил:

rm -rf /usr/local/lib/node_modules
brew uninstall node
brew install node --without-npm
echo prefix=~/.npm-packages >> ~/.npmrc
curl -L https://www.npmjs.com/install.sh | sh

изменил мой ~/.bash_profile с помощью nano:

export PATH="$HOME/.npm-packages/bin:$PATH"

запустил npm install и получил отсутствующий файл package.json поэтому в терминале npm init и ответил на вопросы. Пошел назад и указал на клонированное репо, и когда я запускаю npm install:

npm ERR! code EUNSUPPORTEDPROTOCOL
npm ERR! Unsupported URL Type "npm:": npm:babylon@^7.0.0-beta
npm WARN deprecated gulp-util@3.0.8: gulp-util is deprecated - replace it, following the guidelines at https://medium.com/gulpjs/gulp-util-ca3b1f9f9ac5

но если я react-native init AwesomeProject новый проект с react-native init AwesomeProject и npm install я получаю:

up to date in 0.416s

и я могу указать на проект и выполнить react-native run-ios но он работает, но в команде build.bundle react-native run-android: classpath 'com.android.tools.build:gradle:2.2.3' to classpath "com.android.tools.build:gradle:2.1.0"

3 ответа

Приложение для создания-реагирования не работает с npm 5.

У меня была такая же проблема в Windows и понизилась моя npm до 4, вы можете использовать npm я -g npm @4 для понижения.


Используйте Homebrew для Mac в качестве менеджера пакетов;

https://brew.sh/

то вы можете запустить: установить узел установки

На это есть много других утилит.


Я предлагаю вам использовать рекомендуемую версию узла 8.9.4 и установить пакет с разрешением sudo.

sudo npm install

licensed under cc by-sa 3.0 with attribution.