web-dev-qa-db-ja.com

setup_env.shの反応ネイティブ開始EACCESSエラー

だから、ReactNativeで最初のプロジェクトをWindowsから実行してAndroidOS。Macでチェックアウトし、同じ方法で構成し、React Package Managerを使用してreact-native startおよび次のエラーが表示されます。

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)

私は、root以外のユーザーに許可されているulimit(オープンファイルの制限)を2048に設定しようとするだけであることを認識しています。また、root権限を与えてSudoでコマンドを実行してみました。マシンでulimit -aを実行すると、開いているファイルの上限が256であることが明らかになり、デフォルトの2048をこれに変更しようとしました。コマンドを完全に削除するだけでなく、4096に増やしてみました。これまでに何の違いも生じないようで、エラーは続きます。

react-native init DemoProjectを使用して新しいプロジェクトを作成し、そのフォルダー内でパッケージャーが起動しているように見えるので、問題は別のものですか?

私のpackage.jsonは:

{
  "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"
  }
}

また、もしそれが問題なら、私はシノピア、browserify、およびyarnをグローバルにインストールしています。

そもそも、Macでnpmを使用してすべてのローカル依存関係を追加し、コードをコピーするだけでよいのか、それでも問題ないのかどうかわからない。

依存関係を再追加せずにこれを整理できるといいですね。前もって感謝します。

21

基本プロジェクトディレクトリに移動して実行するだけでした

chmod -R 777 node_modules

68

これは、npmの bug です。バグを修正する前に、問題を修正する2つの方法があります。

  1. Npmバージョンを5.3.0にダウングレードします
  2. Npm i react-nativeの後、chmod -R 775 node_modulesを実行します
10
jerry

私の場合、react-native link

エラー:spawnSync〜/ native-starter-kit/node_modules/react-native/local-cli/setup_env.sh EACCES 

実行して修正しました:chmod +xそのファイル。

2
redochka
chmod -R 777 node_modules

それは実際に動作します!

0
Noman Gul

ジェリーが指摘したように、これはNPMのバグです。現在利用可能な修正プログラムがあります。 npm i -g npmでNPMを更新できます。

バージョン5.4.2(npm --version)に更新し、React Native with npm remove --save react-nativeを削除し、RNをnpm i --save react-nativeで再インストールしました。これにより問題が修正されました。

(代替として、npmの代わりにyarnを試してみたいかもしれません。)

0
cutemachine