2016-12-27 54 views
16

因此,我在ReactNative中獲得了我的第一個項目,以從Windows for Android OS運行。花了Mac上檢出,以相同的方式配置它,當我嘗試啓動使用react-native start的反應包管理器,並得到以下錯誤:react-native start setup_env.sh的EACCESS錯誤

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) 

我知道,它只是試圖設置的ulimit(打開文件限制)到2048年,這對於非root用戶是允許的。也試着用sudo給它root權限運行命令。 在機器上運行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" 
    } 
} 

而且,如果它的問題我有sinopia,browserify和全球的裝機紗。

首先,我不確定是否應該通過npm再次在Mac上添加所有本地依賴項,然後複製我的代碼,或者應該沒問題,而其他東西是不對的。

如果我可以在不重新添加依賴關係的情況下對其進行排序,那將會很棒。提前致謝。

回答

39

根本就到我的基地項目目錄,並運行

chmod -R 777 node_modules

+2

我面對這個問題:'child_process.js:504 扔走錯了路。 ^ 錯誤:spawnSync /../AwesomeProject/node_modules/react-native/local-cli/setup_env.sh EACCES' –

+0

@JacoboKoenig,我使用的是Ubuntu,它是我的節點的問題。 我卸載並清除了系統中的所有node.js,npm和節點文件夾。 重新安裝節點,我的問題得到解決。 –

+0

如果只有我有一百萬分給予。謝謝 – SleepsOnNewspapers

9

這是故宮的bug。他們修復bug之前,你有2個辦法來解決這個問題:

  1. 降級故宮版本5.3.0
  2. NPM之後我反應過來本地的,請運行chmod -R 775個node_modules
2

在我的情況是與一個特定的文件中的錯誤,當我做react-native link:在該文件上chmod +x

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

,所以我通過運行固定它。

0

正如jerry指出的那樣,這是NPM中的一個錯誤。現在有一個修復程序可用。您可以用npm i -g npm更新NPM。

我已更新至版本5.4.2(npm --version),刪除了React Native與npm remove --save react-native,並使用npm i --save react-native重新安裝了RN。這解決了我的問題。

(作爲替代,你可能想嘗試紗代替NPM)