【发布时间】:2021-04-15 15:17:32
【问题描述】:
我该如何解决这个问题。我在手机上升级我的 expo 应用程序后收到此错误:
错误:验证 app.json 中的字段时出现问题。见https://docs.expo.io/workflow/configuration/ • 不应有额外的属性“nodeModulesPath”。
【问题讨论】:
标签: reactjs react-native expo config
我该如何解决这个问题。我在手机上升级我的 expo 应用程序后收到此错误:
错误:验证 app.json 中的字段时出现问题。见https://docs.expo.io/workflow/configuration/ • 不应有额外的属性“nodeModulesPath”。
【问题讨论】:
标签: reactjs react-native expo config
是的,我遇到了同样的问题。
所以我升级了expo-cli使用
npm install -g expo-cli
我的 expo-cli 版本是 4.4.4,我再也看不到错误了。
谢谢你,Sardorek Aminjonov
【讨论】:
@Sardorek,遇到同样的问题,花了一个多小时,终于弄明白了。
解决方法是在app.json文件中添加Expo SDK版本。我的版本是 40.0.1。你可以在package.json看到它。
"react-native": "https://github.com/expo/react-native/archive/sdk-40.0.1.tar.gz"
升级到版本 40 已将其从 app.json 文件中删除。
现在,在app.json 文件中添加major.minor.0 版本,如:
"sdkVersion": "40.0.0"
看起来您不能包含维护版本号。如果这样做,您将收到此错误。
Error: Invalid sdkVersion. Valid options are 7.0.0, 8.0.0, 9.0.0, 10.0.0, 11.0.0, 12.0.0, 13.0.0, 14.0.0, 15.0.0, 16.0.0, 17.0.0, 18.0.0, 19.0.0, 20.0.0, 21.0.0, 22.0.0, 23.0.0, 24.0.0, 25.0.0, 26.0.0, 27.0.0, 28.0.0, 29.0.0, 30.0.0, 31.0.0, 32.0.0, 33.0.0, 34.0.0, 35.0.0, 36.0.0, 37.0.0, 38.0.0, 39.0.0, 40.0.0, 41.0.0
Couldn't publish because errors were found. (See logs above.) Please fix the errors and try again.
现在,运行expo start,瞧,它可以工作了!希望这会有所帮助。
【讨论】:
我正在使用“yarn start”来启动博览会。看起来libragopi的解决方案解决了我的问题,但是在进行热刷新后,警告又回来了。我找到了另一种可能的解决方案,这可能与您启动 expo 的方式有关(就像我的 yarn 一样)
yarn 全局添加 expo-cli
来自此论坛帖子https://forums.expo.io/t/having-issue-with-app-json-after-upgrading-expo-app-in-android/51194/4
【讨论】:
我在不同的背景下遇到了同样的问题。
我是releasing my app with expo-github-action。
我的问题是在构建过程中expo publish --clear --release-channel staging
[08:52:02] - Expo SDK: 41.0.0
[08:52:02] - Release channel: staging
[08:52:02] - Workflow: Managed
[08:52:03] Building optimized bundles and generating sourcemaps...
[08:52:03] Error: Problem validating fields in app.json. See https://docs.expo.io/workflow/configuration/
[08:52:03] • should NOT have additional property 'nodeModulesPath'.
通过更新node-version解决了
// .github/workflows/staging.yml
...
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v1
with:
node-version: 14.x <------- update here
- uses: expo/expo-github-action@v5
with:
expo-version: 4.x <------- update here
expo-username: ${{ secrets.EXPO_CLI_USERNAME }}
expo-password: ${{ secrets.EXPO_CLI_PASSWORD }}
expo-cache: true
【讨论】:
对于 Expo SDK42 不需要添加"sdkVersion": "42.0.0",它已被弃用且无法使用。
解决方法是将expo-cli更新到版本4.9.0 - npm i expo-cli@4.9.0
注意:要小心,因为在 v4.9.1 中它仍然会出现:/
【讨论】:
错误?这是一个与世博会相关的破损
解决方案?只需转到您的 app.json 文件,像这样添加一个 expo 属性
{
"expo":{
"appKey":"NodeModulesPath",
},
"name": "NodeModulesPath",
}
ps:您可以将“nodeModulesPath”替换为引发错误的特定属性
【讨论】:
我遇到了这个问题,所以我更新了 expo go(运行应用程序的应用程序)并修复了
【讨论】: