首页 > 解决方案 > 未处理的 JS 异常:意外的标识符“_Object$defineProperty”。Import 只需要一个参数

问题描述

描述:

当我运行我的项目(以前可以工作)时,我遇到了一个非常模糊的错误,我猜此时它与我的项目无关。

在昨天花了大部分时间试图弄清楚之后,我意识到 react-native 已经更新了自己。

我试过的:

在使用各种工具清理项目后,我摆脱了另一个导致项目在构建过程中失败的错误(react-native run-ios)。

yarn upgrade
yarn cache clean
react-native upgrade
rm -rf ios/build/; kill $(lsof -t -i:8081); react-native run-ios

但是,我仍然遇到同样的问题

babel github上也有提到的issues 好像在讲一个类似的问题:

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

问题

为什么我收到一个模糊的错误,说我有一个未处理的 js 异常?

与问题相关的文件:

.babelrc

{
  "presets": ["react-native"],
  "plugins": ["transform-decorators-legacy",
    "transform-async-generator-functions",
    "transform-object-rest-spread",
    "transform-class-properties",
    "transform-regenerator"]
}

react-native info

Environment:
  OS: macOS High Sierra 10.13.5
  Node: 9.5.0
  Yarn: 1.6.0
  npm: 5.6.0
  Watchman: 4.9.0
  Xcode: Xcode 9.4.1 Build version 9F2000
  Android Studio: 3.1 AI-173.4670197

Packages: (wanted => installed)
  react: ^16.3.0-alpha.1 => 16.4.1
  react-native: 0.54.4 => 0.54.4

包.json

{
  "name": "FluxRN",
  "version": "0.0.1",
  "private": true,
  "scripts": {
    "start": "node node_modules/react-native/local-cli/cli.js start",
    "test": "jest"
  },
  "dependencies": {
    "mobx": "^5.0.2",
    "mobx-react": "^5.2.3",
    "moment": "^2.22.0",
    "native-base": "^2.5.2",
    "react": "^16.3.0-alpha.1",
    "react-native": "0.54.4",
    "react-native-vector-icons": "^4.6.0",
    "react-navigation": "^1.5.9"
  },
  "devDependencies": {
    "babel-jest": "22.4.3",
    "babel-plugin-transform-async-generator-functions": "^6.24.1",
    "babel-plugin-transform-class-properties": "^6.24.1",
    "babel-plugin-transform-decorators": "^6.24.1",
    "babel-plugin-transform-decorators-legacy": "^1.3.5",
    "babel-plugin-transform-object-rest-spread": "^6.26.0",
    "babel-plugin-transform-regenerator": "^6.26.0",
    "babel-plugin-transform-runtime": "^6.23.0",
    "babel-preset-react-native": "4.0.0",
    "jest": "22.4.3",
    "react-test-renderer": "^16.3.0-alpha.1"
  },
  "jest": {
    "preset": "react-native"
  }
}

标签: javascriptreact-native

解决方案


为了解决这个问题,我不得不将我的 react 和 react-native 依赖升级到最新版本,这解决了这个问题。

{
  "name": "FluxRN",
  "version": "0.0.1",
  "private": true,
  "scripts": {
    "start": "node node_modules/react-native/local-cli/cli.js start",
    "test": "jest"
  },
  "dependencies": {
    "moment": "^2.22.0",
    "native-base": "^2.5.2",
    "react": "^16.3.1",
    "react-native": "0.55.4",
    "react-native-vector-icons": "^4.6.0",
    "react-navigation": "^1.5.9"
  },
  "devDependencies": {
    "babel-jest": "23.0.1",
    "babel-preset-react-native": "4.0.0",
    "jest": "23.1.0",
    "react-test-renderer": "^16.3.1"
  },
  "jest": {
    "preset": "react-native"
  }
}

推荐阅读