2016-12-27 25 views
16

Tak, dostałem swój pierwszy projekt w ReactNative, aby uruchomić z Windows dla systemu operacyjnego Android. Wziął kasę na Macu, skonfigurowaniu go w identyczny sposób, jak próbuję uruchomić reagować menedżera pakietów używając react-native start i pojawia się następujący błąd:Response-native start Błąd EACCESS dla setup_env.sh

child_process.js:506 
    throw err; 
    ^
Error: spawnSync /Users/UserName/Desktop/Path/node_modules/react-native/local-cli/setup_env.sh EACCES 
    at exports._errnoException (util.js:1022:11) 
    at spawnSync (child_process.js:461:20) 
    at Object.execFileSync (child_process.js:498:13) 
    at Object.run (/Users/UserName/Desktop/Path/node_modules/react-native/local-cli/cliEntry.js:156:16) 
    at Object.<anonymous> (/usr/local/lib/node_modules/react-native-cli/index.js:117:7) 
    at Module._compile (module.js:570:32) 
    at Object.Module._extensions..js (module.js:579:10) 
    at Module.load (module.js:487:32) 
    at tryModuleLoad (module.js:446:12) 
    at Function.Module._load (module.js:438:3) 

Mam świadomość, że to tylko stara się ustawić ulimit (limit otwartych plików) do 2048, który jest dozwolony dla użytkowników innych niż root. Próbował także uruchomić polecenie z sudo, dając mu uprawnienia root'a. Uruchamianie ulimit -a na komputerze ujawniło limit otwartych plików 256 i spróbowałem zmienić domyślne 2048 na to. Próbowałem zwiększyć to do 4096, a także całkowicie usunąć komendę. Wydaje się, że nie ma znaczenia, co tak zawsze i błąd utrzymuje się.

Utworzono nowy projekt przy użyciu react-native init DemoProject, a narzędzie do pakowania zaczyna się w tym folderze, więc problem jest inny?

Moja package.json jest:

{ 
    "name": "React Native", 
    "version": "0.0.1", 
    "private": true, 
    "scripts": { 
    "start": "node node_modules/react-native/local-cli/cli.js start", 
    "test": "jest" 
    }, 
    "dependencies": { 
    "native-base": "^0.5.18", 
    "react": "15.4.1", 
    "react-addons-shallow-compare": "^15.4.1", 
    "react-native": "0.39.2", 
    "react-native-drawer": "^2.3.0", 
    "react-native-icons": "^0.7.1", 
    "react-native-loading-spinner-overlay": "^0.4.1", 
    "react-native-md-textinput": "^2.0.4", 
    "react-native-overlay": "^0.5.0", 
    "react-native-scrollable-tab-view": "^0.7.0", 
    "react-native-tab-view": "0.0.40", 
    "react-redux": "^4.4.6", 
    "react-timer-mixin": "^0.13.3", 
    "redux": "^3.6.0" 
    }, 
    "devDependencies": { 
    "babel-jest": "17.0.2", 
    "babel-preset-react-native": "1.9.0", 
    "jest": "17.0.3", 
    "react-test-renderer": "15.4.1" 
    }, 
    "jest": { 
    "preset": "react-native" 
    } 
} 

Ponadto, jeśli to ma znaczenie mam Sinopia, browserify i przędza zainstalowane globalnie.

Po pierwsze, nie jestem pewien, czy powinienem dodać wszystkie lokalne zależności przez npm jeszcze raz na komputerze Mac, a następnie po prostu skopiować mój kod, lub że powinno być dobrze, a coś innego jest nie w porządku.

Byłoby świetnie, gdybym mógł rozwiązać ten problem bez ponownego dodawania zależności. Z góry dziękuję.

Odpowiedz

39

prostu musiał iść do mojego podstawowego katalogu projektu i uruchomienia

chmod -R 777 node_modules

+2

Jestem w obliczu tego problemu: 'child_process.js: 504 rzut err; ^ Błąd: spawnSync /../AwesomeProject/node_modules/react-native/local-cli/setup_env.sh EACCES' –

+0

@JacoboKoenig, używam Ubuntu, to był problem z moim węzłem. Odinstaluj i wyczyściłem wszystkie foldery node.js, npm i węzłów z systemu. Ponownie zainstalowałem węzeł, a mój problem został rozwiązany. –

+0

Gdybym tylko miał milion punktów do przekazania. Dziękuję Ci – SleepsOnNewspapers

9

To bug z KMP. Przed ich naprawić błąd, masz 2 sposób, aby rozwiązać problem:

  1. Downgrade wersja npm do 5.3.0
  2. Po KMP reaguję-rodzimy, uruchom chmod -R 775 node_modules
2

w moim przypadku błąd był z jednego konkretnego pliku, gdy robię react-native link:

 
Error: spawnSync ~/native-starter-kit/node_modules/react-native/local-cli/setup_env.sh EACCES 

więc naprawiłem go uruchamiając: chmod +x na tym pliku.

0

Jak zauważył jerry, jest to błąd w NPM. Dostępna jest teraz poprawka. Możesz zaktualizować NPM za pomocą npm i -g npm.

Zaktualizowałem do wersji 5.4.2 (npm --version), usunięto odpowiedź Natywną z npm remove --save react-native i ponownie zainstalowałem RN z npm i --save react-native. To naprawiło problem dla mnie.

(Jako alternatywa może chcesz spróbować przędzy zamiast npm).