所以,我在ReactNative中获得了第一个从Windows for Android OS运行的项目。在Mac上结帐,以相同的方式配置它,并尝试使用react-native start
启动react包管理器并获得以下错误:
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和yarn。
首先,我不确定是否应该再次通过npm在Mac上添加所有本地依赖项,然后只需复制我的代码,或者那应该没问题,还有其他不妥之处。
如果我可以在不重新添加依赖项的情况下对其进行排序,那将会很棒。提前谢谢。
答案 0 :(得分:62)
只需转到我的基础项目目录并运行
chmod -R 777 node_modules
答案 1 :(得分:10)
这是npm的bug。在修复错误之前,您有2种方法可以解决问题:
答案 2 :(得分:2)
在我的情况下,当我执行react-native link
时,错误与一个特定文件有关:
Error: spawnSync ~/native-starter-kit/node_modules/react-native/local-cli/setup_env.sh EACCES
所以我通过在该文件上运行chmod +x
来修复它。
答案 3 :(得分:0)
正如杰里所指出的,这是NPM中的一个错误。现在有一个修复程序可用。您可以使用npm i -g npm
更新NPM。
我已更新至版本5.4.2(npm --version
),已删除带有npm remove --save react-native
的React Native并使用npm i --save react-native
重新安装了RN。这为我解决了这个问题。
(作为替代方案,你可能想尝试纱线而不是npm。)
答案 4 :(得分:0)
chmod -R 777 node_modules
这真的有效!