Plugin/Preset files are not allowed to export objects, only functions
Asked Answered
I

5

15

I'm getting this error after updating react-native to "^0.56.0":

 bundling failed: Error: Plugin/Preset files are not allowed to export objects, only functions. In /Users/ben/vepo/frontend/node_modules/babel-preset-flow/lib/index.js

I tried to do something similar to the highest voted answer here but instead for babel-preset-flow:

https://github.com/babel/babel-loader/issues/540

.babelrc:

"presets": ["react-native", "flow", "@babel/preset-flow"]

package.json

{
  "name": "vepo",
  "version": "0.0.1",
  "private": true,
  "scripts": {
    "start": "node node_modules/react-native/local-cli/cli.js start",
    "test": "jest"
  },
  "rnpm": {
    "assets": [
      "./app/fonts"
    ]
  },
  "jest": {
    "preset": "react-native",
    "moduleNameMapper": {
      "\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$": "<rootDir>/__mocks__/fileMock.js",
      "\\.(css|less)$": "<rootDir>/__mocks__/styleMock.js"
    }
  },
  "dependencies": {
    "@babel/preset-flow": "^7.0.0-beta.52",
    "@babel/preset-react": "^7.0.0-beta.52",
    "babel-preset-react-native": "^4.0.0",
    "flow-typed": "^2.4.0",
    "generator-rn-toolbox": "^2.2.0",
    "imagemagick": "^0.1.3",
    "immutable": "4.0.0-rc.9",
    "metro-bundler": "^0.22.1",
    "native-base": "^2.3.3",
    "prop-types": "^15.5.10",
    "react": "16.3.1",
    "react-native": "^0.56.0",
    "react-native-aws3": "^0.0.8",
    "react-native-blur": "^3.1.3",
    "react-native-communications": "^2.2.1",
    "react-native-drawer": "^2.3.0",
    "react-native-fbsdk": "facebook/react-native-fbsdk#065507a",
    "react-native-git-upgrade": "^0.2.7",
    "react-native-image-picker": "^0.26.7",
    "react-native-interactable": "^0.1.2",
    "react-native-mail": "^3.0.2",
    "react-native-maps": "^0.16.4",
    "react-native-modal": "^2.3.2",
    "react-native-modalbox": "^1.3.9",
    "react-native-multiple-choice": "^0.0.8",
    "react-native-navigation": "^1.1.100",
    "react-native-off-canvas-menu": "^0.1.31",
    "react-native-optimized-flatlist": "^1.0.1",
    "react-native-redux-router": "^1.0.7",
    "react-native-select-multiple": "^1.0.3",
    "react-native-side-menu": "^0.20.1",
    "react-native-vector-icons": "^4.4.0",
    "react-navigation": "^1.0.0-beta.11",
    "react-redux": "^5.0.3",
    "redux": "^3.6.0",
    "redux-immutable": "^4.0.0",
    "redux-observable": "^0.14.1",
    "reselect": "^3.0.0",
    "rxjs": "^5.2.0",
    "yarn": "^1.3.2",
    "yoga": "^0.0.0"
  },
  "devDependencies": {
    "adm-zip": "^0.4.7",
    "babel-cli": "^6.26.0",
    "babel-eslint": "^7.1.1",
    "babel-plugin-module-resolver": "^2.7.0",
    "eslint": "^3.17.0",
    "eslint-config-prettier": "^2.9.0",
    "eslint-plugin-flowtype": "^2.30.3",
    "eslint-plugin-jsx": "^0.0.2",
    "eslint-plugin-react": "^6.10.0",
    "eslint-plugin-react-native": "^2.3.1",
    "flow-bin": "^0.72.0",
    "plist": "^2.1.0",
    "react-devtools": "^3.2.1",
    "react-test-renderer": "~15.4.1",
    "redux-devtools": "^3.3.2",
    "remote-redux-devtools": "^0.5.7",
    "remotedev-server": "^0.2.4",
    "xcode": "^1.0.0"
  }
}

Nothing is working. Any ideas?

EDIT: there is no node_modules/babel-preset-flow folder at all

Isobelisocheim answered 11/7, 2018 at 7:39 Comment(2)
Could you resolve this?, i've the same error :(Gaza
@Gaza No I couldn't fix this error so I reverted back to react-native version 0.55.4 which doesn't have the error for me.Isobelisocheim
N
12

I had the same error and resolved it by uninstalling babel-preset-flow and installing @babel/preset-flow. I believe this is due to React Native 56 using Babel 7. And add to .babelrc

{
  "presets": ["@babel/preset-flow"]
}
Neighborhood answered 20/7, 2018 at 16:4 Comment(3)
thanks this solved my problem as well, upvote for saving me time!Burk
Thanks this solved my problem too. Try to follow this doc flow.org/en/docs/reactAland
I'm getting == Error: Cannot find module 'babel-preset-flow' from <project path> - Did you mean "@babel/flow"?Remotion
C
11

Upgrade your babel-preset-react-native dependency.

"babel-preset-react-native": "^5",

You don't need to have @babel/preset-react or @babel/preset-flow installed.

Hope this helps.

Conover answered 31/7, 2018 at 2:45 Comment(1)
didn't solve my problem :s I am using detox and still getting the same error with this and react 0.55.4Ruble
B
8

Open .babelrc file and then edit the presets section of the code as follows:

  "presets": ["module:metro-react-native-babel-preset"],
Baram answered 7/12, 2018 at 5:36 Comment(1)
after this, I had another problem, which is solved there #51765813 , then it started to workMarmion
A
2

I solved this issue by installing "babel-preset-react-native-stage-0" in my project and changed .babelrc file:

"presets": [
    "babel-preset-react-native-stage-0/decorator-support"
  ]
Abscise answered 8/6, 2019 at 17:59 Comment(0)
T
0

for Babel 7 and above and according to this document create a file with name bable.config.js instead of .babelrc and then export presets like this :

const presets = [
    "flow"
]

module.exports = {presets}
Termagant answered 17/11, 2018 at 18:32 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.