2016-12-27 40 views
16

Vì vậy, tôi đã nhận dự án đầu tiên của mình trong ReactNative để chạy từ Windows cho hệ điều hành Android. Mất một kiểm tra trên máy Mac, cấu hình nó một cách giống hệt nhau và khi tôi cố gắng để bắt đầu phản ứng quản lý gói sử dụng react-native start và nhận được lỗi sau:Lỗi EACCESS bắt đầu phản ứng bản địa cho 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) 

Tôi biết rằng nó chỉ cố gắng để thiết lập ulimit (giới hạn tệp mở) đến năm 2048 cho phép người dùng không phải root. Cũng cố gắng chạy lệnh với sudo cho nó quyền root. Chạy ulimit -a trên máy cho biết giới hạn tệp mở là 256 và tôi đã thử thay đổi 2048 mặc định thành tệp này. Đã cố gắng tăng nó lên 4096 cũng như loại bỏ hoàn toàn lệnh. Dường như không tạo ra sự khác biệt nào cho đến giờ và lỗi vẫn tồn tại.

Tạo dự án mới bằng cách sử dụng react-native init DemoProject và trình đóng gói dường như bắt đầu trong thư mục đó để vấn đề có vấn đề gì khác?

package.json của tôi là:

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

Ngoài ra, nếu những vấn đề tôi có sinopia, browserify và sợi được cài đặt trên toàn cầu.

Để bắt đầu, tôi không chắc liệu tôi có nên thêm tất cả các phụ thuộc địa phương thông qua npm một lần nữa trên Mac và sau đó chỉ cần sao chép mã của tôi hoặc điều đó sẽ ổn và cái gì khác không ổn.

Sẽ thật tuyệt nếu tôi có thể sắp xếp điều này mà không cần thêm lại các phụ thuộc. Cảm ơn trước.

Trả lời

39

Đơn giản chỉ cần phải đi vào thư mục dự án cơ sở của tôi và chạy

chmod -R 777 node_modules

+2

Tôi đang phải đối mặt với vấn đề này: 'child_process.js: 504 ném err; ^ Lỗi: spawnSync /../AwesomeProject/node_modules/react-native/local-cli/setup_env.sh EACCES' –

+0

@JacoboKoenig, tôi đang sử dụng ubuntu, đó là vấn đề với nút của tôi. Tôi đã gỡ cài đặt và xóa tất cả các thư mục node.js, npm và nút khỏi hệ thống. Cài đặt lại nút lần nữa và sự cố của tôi được giải quyết. –

+0

Nếu tôi chỉ có một triệu điểm để tặng. Cảm ơn bạn – SleepsOnNewspapers

9

Đây là một bug về NPM. Trước khi sửa lỗi, bạn có 2 cách để khắc phục vấn đề:

  1. Downgrade phiên bản NPM để 5.3.0
  2. Sau NPM tôi phản ứng bản địa, chạy chmod -R 775 node_modules
2

trong trường hợp của tôi lỗi là với một tập tin cụ thể khi tôi làm react-native link:

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

vì vậy tôi cố định nó bằng cách chạy: chmod +x trong hồ sơ đó.

0

Như jerry đã chỉ ra, đây là lỗi trong NPM. Hiện đã có bản sửa lỗi. Bạn có thể cập nhật NPM với npm i -g npm.

Tôi đã cập nhật lên phiên bản 5.4.2 (npm --version), đã loại bỏ React Native bằng npm remove --save react-native và RN được cài đặt lại với npm i --save react-native. Điều này đã khắc phục vấn đề cho tôi.

(Là một thay thế bạn có thể muốn thử sợi thay vì NPM.)

Các vấn đề liên quan