2016-01-24 2 views
2

Я пытаюсь научиться Реагировать Native развития по следующей инструкции:ReactNativeCli иницилизации ошибка сборки проекта Helloworld с Вавилонской TransformError

nvm install v4.2.6 
nvm alias default v4.2.6 
npm install -g react-native-cli 
react-native init RNApp 
cd RNAPP 

Затем я открываю приложение проект IOS и компилировать программы. Затем я получил следующую ошибку:

... 
++ NVM_NPM_PREFIX=/Users/user/.nvm/versions/node/v4.2.6 
++ nvm_tree_contains_path /Users/user/.nvm /Users/user/.nvm/versions/node/v4.2.6 
++ '[' -n '' ']' 
+ [[ -x /Users/user/.nodenv/bin/nodenv ]] 
+ react-native bundle --entry-file index.ios.js --platform ios --dev true --bundle-output /Users/user/Library/Developer/Xcode/DerivedData/RNApp-ckxusxiznabgxxcrqessfpbjyrks/Build/Products/Debug-iphonesimulator/RNApp.app/main.jsbundle --assets-dest /Users/user/Library/Developer/Xcode/DerivedData/RNApp-ckxusxiznabgxxcrqessfpbjyrks/Build/Products/Debug-iphonesimulator/RNApp.app 
bundle: Created ReactPackager 
uncaught error Error: ReferenceError: [BABEL] /Users/user/Desktop/RNApp/node_modules/react-native/node_modules/react-transform-hmr/node_modules/react-proxy/node_modules/react-deep-force-update/lib/index.js: Unknown option: /Users/user/Desktop/RNApp/node_modules/react-native/node_modules/react-transform-hmr/node_modules/react-proxy/node_modules/react-deep-force-update/.babelrc.stage 
    at Logger.error (/Users/user/Desktop/RNApp/node_modules/react-native/node_modules/babel-core/lib/transformation/file/logger.js:41:11) 
    at OptionManager.mergeOptions (/Users/user/Desktop/RNApp/node_modules/react-native/node_modules/babel-core/lib/transformation/file/options/option-manager.js:262:18) 
    at OptionManager.addConfig (/Users/user/Desktop/RNApp/node_modules/react-native/node_modules/babel-core/lib/transformation/file/options/option-manager.js:221:10) 
    at OptionManager.findConfigs (/Users/user/Desktop/RNApp/node_modules/react-native/node_modules/babel-core/lib/transformation/file/options/option-manager.js:364:16) 
    at OptionManager.init (/Users/user/Desktop/RNApp/node_modules/react-native/node_modules/babel-core/lib/transformation/file/options/option-manager.js:412:12) 
    at File.initOptions (/Users/user/Desktop/RNApp/node_modules/react-native/node_modules/babel-core/lib/transformation/file/index.js:191:75) 
    at new File (/Users/user/Desktop/RNApp/node_modules/react-native/node_modules/babel-core/lib/transformation/file/index.js:122:22) 
    at Pipeline.transform (/Users/user/Desktop/RNApp/node_modules/react-native/node_modules/babel-core/lib/transformation/pipeline.js:42:16) 
    at transform (/Users/user/Desktop/RNApp/node_modules/react-native/packager/transformer.js:59:24) 
TransformError: /Users/user/Desktop/RNApp/node_modules/react-native/node_modules/react-transform-hmr/node_modules/react-proxy/node_modules/react-deep-force-update/lib/index.js: [BABEL] /Users/user/Desktop/RNApp/node_modules/react-native/node_modules/react-transform-hmr/node_modules/react-proxy/node_modules/react-deep-force-update/lib/index.js: Unknown option: /Users/user/Desktop/RNApp/node_modules/react-native/node_modules/react-transform-hmr/node_modules/react-proxy/node_modules/react-deep-force-update/.babelrc.stage 
See logs /var/folders/g9/m3cmg0m10cl80xt362wpsld00000gn/T/react-packager.log 
    at SocketClient._handleMessage (SocketClient.js:139:23) 
    at BunserBuf.<anonymous> (SocketClient.js:53:42) 
    at emitOne (events.js:77:13) 
    at BunserBuf.emit (events.js:169:7) 
    at BunserBuf.process (/Users/user/Desktop/RNApp/node_modules/react-native/node_modules/bser/index.js:289:10) 
    at /Users/user/Desktop/RNApp/node_modules/react-native/node_modules/bser/index.js:244:12 
    at nextTickCallbackWith0Args (node.js:419:9) 
    at process._tickCallback (node.js:348:13) 
Command /bin/sh failed with exit code 1 

Я что-то не так? или просто что-то ошибка в babel для поддержки на основе реакции?

➜ RNApp react-native --version 
react-native-cli: 0.1.10 
react-native: 0.18.1 

Но, похоже, что run-android работает отлично:

:app:generateDebugSources 
:app:processDebugJavaRes UP-TO-DATE 
:app:compileDebugJavaWithJavac 
:app:compileDebugNdk UP-TO-DATE 
:app:compileDebugSources 
:app:preDexDebug 
:app:dexDebug 
:app:validateDebugSigning 
:app:packageDebug 
:app:zipalignDebug 
:app:assembleDebug 
:app:installDebug FAILED 

FAILURE: Build failed with an exception. 

* What went wrong: 
Execution failed for task ':app:installDebug'. 
> com.android.builder.testing.api.DeviceException: No connected devices! 

ответ

4

Это основная причина этого вопроса является то, что React Native использует Бабель 6, который осуждал использование опции stage на .babelrc файлов, и react-deep-force-update, подзависимость React Native, все еще объявляет файл .babelrc с этой опцией.

Это проблема с любыми сторонними модулями, которые по-прежнему используют старый Babel в своем собственном процессе сборки и не очищают файлы конфигурации для публикации npm.

Я работал вокруг вопроса, добавив следующие сценарии выполняются НПМИ к моему package JSON:

"scripts": { 
    "clean:babelrc": "find ./node_modules -name react-packager -prune -o -name '.babelrc' -print | xargs rm -f", 
    "postinstall": "npm run clean:babelrc" 
} 

Сценария Nukes всех .babelrc файлов в директории node_modules после каждого npm install, за исключением того, под директорией react-packager , который представляет собой React Native packager, используется для настройки собственных правил бабелей.

Вопрос является tracked on React Native GitHub repository.

+0

Спасибо, это работает для меня. –

0

Я обновил пакеты npm.

react-proxy ==> 1.1.2

react-deep-force-update ==> 2.0.1

Вам нужно удалить пакеты файлов в первую node_modules. Затем установите новую версию.

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

Смежные вопросы