Отчет о собственном запуске реакции: Ошибка: НЕИЗВЕСТНО: неизвестная ошибка, открыть...\.babel.json

У меня есть среда разработки RN на Windows 7. Она отлично работает до вчерашнего дня, она внезапно сообщает об ошибке после того, как я запускаю "реактивный" запуск. Сообщение об ошибке:

[2016-12-26 09:58:17]         HMR Server listening on /hot

React packager ready.

fs.js:557
  return binding.open(pathModule._makeLong(path), stringToFlags(flags), mode);
                 ^

Error: UNKNOWN: unknown error, open 'C:\Users\xitao\.babel.json'
    at Object.fs.openSync (fs.js:557:18)
    at Object.fs.writeFileSync (fs.js:1222:33)
    at save (C:\RN\LearnRN\node_modules\babel-register\lib\cache.js:45:16)
    at _combinedTickCallback (internal/process/next_tick.js:67:7)
    at process._tickCallback (internal/process/next_tick.js:98:9)
fs.js:557
  return binding.open(pathModule._makeLong(path), stringToFlags(flags), mode);
                 ^

Error: UNKNOWN: unknown error, open 'C:\Users\xitao\.babel.json'
    at Object.fs.openSync (fs.js:557:18)
    at Object.fs.writeFileSync (fs.js:1222:33)
    at save (C:\RN\LearnRN\node_modules\babel-register\lib\cache.js:45:16)
    at _combinedTickCallback (internal/process/next_tick.js:67:7)
    at process._tickCallback (internal/process/next_tick.js:98:9)
fs.js:557
  return binding.open(pathModule._makeLong(path), stringToFlags(flags), mode);
                 ^

Error: UNKNOWN: unknown error, open 'C:\Users\xitao\.babel.json'
    at Object.fs.openSync (fs.js:557:18)
    at Object.fs.writeFileSync (fs.js:1222:33)
    at save (C:\RN\LearnRN\node_modules\babel-register\lib\cache.js:45:16)
    at _combinedTickCallback (internal/process/next_tick.js:67:7)
    at process._tickCallback (internal/process/next_tick.js:98:9)

Я погуглил ошибку, не повезло. Я удаляю.babel.json, ошибка stiil выходит. Я заново запускаю новый проект, все тот же. Я удаляю node.js и python, затем устанавливаю их снова, следуя инструкциям "Приступая к работе" на главной странице RN, все так же. Я устанавливаю response-native-cli 2.0.1 и 1.3.0, все тот же.

Кажется, проект RN работает даже с ошибкой. Но вы никогда не знаете, когда ошибка повредит моему проекту.

6 ответов

Решение

Версия моего node.js была 7.5.0.

Я обновил его до 7.10.0 вчера, и проблема решена.

Я тоже столкнулся с этим и отладил, насколько мог, прямо сейчас. Ошибка возникает из-за некоторого состояния гонки:

  • во время сборки, babel-register пишет кеш в ~/.babel.jsonна каждый тик
  • поскольку запись выполняется синхронно, условие гонки не может возникнуть в потоке одного узла
  • так как узел является однопоточным по конструкции, это должно происходить из-за некоторого параллельного выполнения в Java, запускающего несколько потоков параллельного узла

Я понятия не имею, почему это случается не со всеми, или почему это происходит только после того, как какое-то время использовалось реагировать на нативную версию

Это нужно будет исправить в React Native, возможно, в координации с babel-register... Я также опубликую это в связанной проблеме GitHub.

Попробуйте удалить.babel.json, сгенерировать новый и предоставить разрешение на чтение для этого файла.

У вас есть файл babel.json в C:\Users\Me, который недействителен. Исправьте это или удалите это. Он не был создан React Native и не нужен, если вы не хотите устанавливать глобальные настройки babel для каждого проекта на вашей машине.

https://github.com/facebook/react-native/issues/11803

  1. Удалить.babel.json
  2. реактивный род-андроид (воссоздает.babel.json)
  3. откройте C:\Users\yourUserName\ в проводнике Windows (не IE)
  4. щелкните правой кнопкой мыши на.babel.json > Свойства
  5. Вкладка Безопасность> Дополнительно> Изменить разрешения... > Добавить...
  6. Введите имя объекта для выбора, введите Все, нажмите ОК
  7. В окне "Разрешения" установите флажок "Разрешить полный доступ", нажмите "ОК".
  8. нажмите ОК
  9. реагировать-родной запуск андроид (работает сейчас)

Это сработало для меня:

react-native start --reset-cache

Удалите старую версию приложения на телефоне и попробуйте следующее:

      react-native start --reset-cache


npx react-native run-android

Попробуйте эту строку в Git Bush

chmod 777 .babel.json

Возможно, проблема в том, что этот файл доступен только для чтения.

Другие вопросы по тегам