2017-01-02 2 views
9

Я продолжаю эту ошибку. Это произошло несколько раз недавно, и теперь я не могу избавиться от него. Я использую MobX в моем Реагировать Native проекта и поэтому мне нужно что-то в моем .babelrc так у меня есть поддержка декоратора:SyntaxError: 'import' и 'export' могут отображаться только с 'sourceType: module' (1: 0)

{ 
    "presets": ["react-native"], 
    "plugins": ["transform-decorators-legacy"] 
} 

Я попробовал несколько вариантов разницы, но все они дают мне ошибку ниже. Если я удалю его, я получаю сообщение об ошибке, потому что декораторы не поддерживаются.

SyntaxError: 'import' and 'export' may appear only with 'sourceType: module' (1:0) 
    at Parser.pp$5.raise (/path-to/node_modules/babylon/lib/index.js:4246:13) 
    at Parser.pp$1.parseStatement (/path-to/node_modules/babylon/lib/index.js:1749:16) 
    at Parser.pp$1.parseBlockBody (/path-to/node_modules/babylon/lib/index.js:2133:21) 
    at Parser.pp$1.parseTopLevel (/path-to/node_modules/babylon/lib/index.js:1645:8) 
    at Parser.parse (/path-to/node_modules/babylon/lib/index.js:1537:17) 
    at Object.parse$1 [as parse] (/path-to/node_modules/babylon/lib/index.js:6466:37) 
    at extractDependencies (/path-to/node_modules/react-native/packager/react-packager/src/JSTransformer/worker/extract-dependencies.js:29:23) 
    at transform (/path-to/node_modules/react-native/packager/react-packager/src/JSTransformer/worker/index.js:53:9) 
    at module.exports (/path-to/node_modules/react-native/packager/transformer.js:130:3) 
    at transformCode (/path-to/node_modules/react-native/packager/react-packager/src/JSTransformer/worker/index.js:27:3) 
transformed 35/139 (25%)/path-to/node_modules/babylon/lib/index.js:4249 
    throw err; 

Я попытался удалить мои node_modules и переустановить несколько раз. Я использую пряжу. Также удалите файл блокировки перед запуском yarn install.

Я следил за this guide, чтобы установить плагины Babel. Мой package.json выглядит следующим образом:

"dependencies": { 
    "apsl-react-native-button": "^3.0.0", 
    "mobx": "^2.5.0", 
    "mobx-react": "^3.5.5", 
    "react": "15.3.2", 
    "react-native": "0.37.0", 
    "react-native-autogrow-textinput": "^2.0.3", 
    "react-native-awesome-button": "^1.6.0", 
    "react-native-couchbase-lite": "git://github.com/adamski/react-native-couchbase-lite.git#gradle-experimental", 
    "react-native-keep-awake": "git://github.com/adamski/react-native-keep-awake.git#experimental-gradle", 
    "react-native-keyboard-aware-view": "^0.0.11", 
    "react-native-keyboard-dodging-view": "git://github.com/adamski/react-native-keyboard-dodging-view#upper-text-inputs", 
    "react-native-modalbox": "^1.3.4", 
    "react-native-navigation": "git://github.com/adamski/react-native-navigation.git#gradle-experimental-update", 
    "react-native-searchbar": "^0.4.2", 
    "react-native-simple-store": "^1.0.1", 
    "react-native-swipe-list-view": "^0.3.1" 
    }, 
    "devDependencies": { 
    "babel-plugin-transform-decorators-legacy": "^1.3.4", 
    "babel-preset-react-native": "^1.9.1" 
    } 

Я попытался обновить РН 0,38, но все еще получаю ту же ошибку.

Запуск ag babylon дает

yarn.lock 
200: babylon "^6.11.0" 
885: babylon "^6.11.0" 
896: babylon "^6.11.0" 
911:[email protected]^6.11.0, [email protected]^6.13.0, [email protected]^6.13.1: 
913: resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.14.1.tgz#956275fab72753ad9b3435d7afe58f8bf0a29815" 
3478: babylon "^6.13.0" 
3555: babylon "^6.13.1" 

который предполагает конфликт между различными версиями Вавилона?

Может ли кто-нибудь сказать мне, что на самом деле означает это сообщение об ошибке? Это что-то в моем коде, или это несоответствие версий babel среди моих модулей?

+0

Какой модуль не получает импорт? – Codesingh

+0

@Codesingh Я понятия не имею .. – Adamski

+0

из корневого каталога вашего проекта запустите npm uninstall – Codesingh

ответ

2

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

и в вашем .babelrc добавить «реагировать-нативную СЦЕНУ-0/декоратор-поддержку» пресеты массив

+1

Это то, что я изначально имел в своем '. babelrc' - Я пытался много разных вариантов, но все же сталкивался с этой ошибкой. Возможно, пришло время перестроить проект ... – Adamski

0

У меня была та же проблема. В конце концов, я решил удалить файл .babelrc. Затем мне пришлось установить некоторые пресеты и добавить их как зависимости dev.

В частности:

babel-preset-es2015 babel-preset-react babel-preset-react-native

И все началось снова работает.

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