gpt4 book ai didi

ios - react native : SyntaxError: Strict mode does not allow function declarations in a lexically nested statement

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:33:42 24 4
gpt4 key购买 nike

从 React Native 0.22.2 升级并升级了一些插件后,我开始在 iOS 上遇到此错误。我试过降级并重新安装所有东西,但我无法摆脱修复它。其他人遇到过这个:

SyntaxError: Strict mode does not allow function declarations in a lexically nested statement.

更新#1:

除了还原模块之外,我还注释掉了任何 'use strict';

我更新的内容之一是 npm 和 node。我正在运行节点 v5.3.0 和 npm v3.8.3。我不记得我有什么版本...

更新#2:

有我在 React Native 中使用的模块:

"dependencies": {
"deep-freeze": "github:substack/deep-freeze",
"react": "^0.14.7",
"react-native": "^0.22.2",
"react-native-activity-view": "^0.2.8",
"react-native-animated-progress-bar": "^1.0.0",
"react-native-audio": "^1.0.0",
"react-native-camera": "git+https://github.com/lwansbrough/react-native-camera.git",
"react-native-device-info": "^0.9.1",
"react-native-fs": "^1.2.0",
"react-native-html-to-pdf": "^0.1.2",
"react-native-in-app-utils": "^2.3.0",
"react-native-mail": "^0.2.4",
"react-native-passcode-auth": "^1.0.0",
"react-native-router-flux": "^2.3.13",
"react-native-save-asset-library": "^1.0.0",
"react-native-touch-id": "^1.2.4",
"react-native-transfer": "^1.0.2",
"react-native-utils": "^1.0.1",
"react-native-webkit-localstorage-reader": "^1.0.0",
"react-redux": "^3.1.2",
"redux": "^3.0.5",
"redux-thunk": "^2.0.1"
}

更新#3

考虑到降级到 React Native 0.21.0 会解决这个问题,我做了以下事情:

  1. 删除了 node_modules 文件夹
  2. 将 package.json 的 react-native 版本从 0.22.2 更改为 0.21.0 并删除了 react 条目(我认为这只是 0.22.2 的要求)。
  3. 运行 npm install
  4. 运行 npm start --reset-cache
  5. 打开 xcode 并在模拟器上运行该应用。

不幸的是,我仍然遇到同样的错误。为了确保它不是我项目之外的东西,我创建了一个全新的 react-native 项目并且它运行良好(即使使用 react native 0.22.2)。所以这与我的项目有关,但我终其一生都无法弄清楚我做了什么导致了这一切。 :(

最佳答案

发生此错误是因为 babel 现在向所有模块添加了“use strict”。而且它不允许在像 if

这样的词法 block 中定义函数

如果错误来自某个库,您可以尝试找出导致错误的库并将其添加到 .babelignore 文件中。

你也可以通过使用 .babelrc 文件来完全禁用严格模式

{
"plugins": [
"syntax-async-functions",
"syntax-class-properties",
"syntax-trailing-function-commas",
"transform-class-properties",
"transform-es2015-arrow-functions",
"transform-es2015-block-scoping",
"transform-es2015-classes",
"transform-es2015-computed-properties",
"transform-es2015-constants",
"transform-es2015-destructuring",
["transform-es2015-modules-commonjs", { "strict": false, "allowTopLevelThis": true }],
"transform-es2015-parameters",
"transform-es2015-shorthand-properties",
"transform-es2015-spread",
"transform-es2015-template-literals",
"transform-flow-strip-types",
"transform-object-assign",
"transform-object-rest-spread",
"transform-react-display-name",
"transform-react-jsx",
"transform-regenerator",
["transform-es2015-for-of", { "loose": true }]
]
}

注意:确保清除打包程序缓存(npm start -- --reset-cache)以确保再次运行所有转换。

关于ios - react native : SyntaxError: Strict mode does not allow function declarations in a lexically nested statement,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36230872/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com