You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Nx工作区创建Expo应用启动时出现path参数未定义错误

问题:Nx工作区中Expo应用启动报错"The 'path' argument must be of type string. Received undefined"

问题详情

在已包含React应用的Nx工作区中,执行nx generate @nrwl/expo:app my-app创建Expo应用后,运行npx nx run my-app:start时触发如下错误:

NX ERROR The "path" argument must be of type string. Received undefined

未修改任何项目代码,仅按教程执行初始化操作,项目根目录tsconfig.json中的path配置如下:

{
  "extends": "../../tsconfig.base.json",
  "compilerOptions": {
    "allowSyntheticDefaultImports": true,
    "jsx": "react-native",
    "lib": ["dom", "esnext"],
    "moduleResolution": "node",
    "noEmit": true,
    "skipLibCheck": true,
    "resolveJsonModule": true,
    "strict": true
  },
  "files": ["../../node_modules/@nrwl/expo/typings/svg.d.ts"],
  "include": [],
  "references": [
    {
      "path": "./tsconfig.app.json"
    },
    {
      "path": "./tsconfig.spec.json"
    }
  ],
  "exclude": ["node_modules"]
}

环境与依赖信息

工作区依赖

"dependencies": {
    "@expo/metro-config": "0.3.22",
    "@reduxjs/toolkit": "1.6.2",
    "@types/object-hash": "^2.2.1",
    "@types/react-loadable": "^5.5.6",
    "antd": "^4.18.2",
    "array-move": "^4.0.0",
    "axios": "^0.24.0",
    "core-js": "^3.6.5",
    "dompurify": "^2.3.6",
    "expo": "46.0.10",
    "expo-splash-screen": "~0.16.2",
    "expo-status-bar": "~1.4.0",
    "html-react-parser": "^1.4.8",
    "i18next": "^21.6.5",
    "lodash": "^4.17.21",
    "object-hash": "^3.0.0",
    "react": "17.0.2",
    "react-dom": "17.0.2",
    "react-grid-layout": "^1.3.1",
    "react-i18next": "^11.15.3",
    "react-icons": "^4.3.1",
    "react-loadable": "^5.5.0",
    "react-native": "0.69.5",
    "react-native-svg": "12.3.0",
    "react-native-svg-transformer": "1.0.0",
    "react-native-web": "~0.18.7",
    "react-qr-code": "^2.0.7",
    "react-quill": "^2.0.0",
    "react-redux": "7.2.5",
    "react-router-dom": "^6.2.1",
    "redux-persist": "^6.0.0",
    "regenerator-runtime": "0.13.7",
    "tslib": "^2.0.0"
  },
  "devDependencies": {
    "@nrwl/cli": "13.4.1",
    "@nrwl/cypress": "13.4.1",
    "@nrwl/detox": "14.8.3",
    "@nrwl/eslint-plugin-nx": "13.4.1",
    "@nrwl/expo": "^14.8.3",
    "@nrwl/jest": "13.4.1",
    "@nrwl/linter": "13.4.1",
    "@nrwl/react": "13.4.1",
    "@nrwl/tao": "13.4.1",
    "@nrwl/web": "13.4.1",
    "@nrwl/workspace": "13.4.1",
    "@rtk-query/codegen-openapi": "^1.0.0",
    "@svgr/webpack": "^6.3.1",
    "@testing-library/jest-dom": "5.16.5",
    "@testing-library/jest-native": "4.0.11",
    "@testing-library/react": "12.1.2",
    "@testing-library/react-hooks": "7.0.2",
    "@testing-library/react-native": "11.0.0",
    "@types/dompurify": "^2.3.2",
    "@types/jest": "27.0.2",
    "@types/lodash": "^4.14.178",
    "@types/node": "14.14.33",
    "@types/react": "17.0.30",
    "@types/react-dom": "17.0.9",
    "@types/react-grid-layout": "^1.3.0",
    "@types/react-native": "0.69.8",
    "@types/redux-persist": "^4.3.1",
    "@typescript-eslint/eslint-plugin": "~5.3.0",
    "@typescript-eslint/parser": "~5.3.0",
    "babel-jest": "27.2.3",
    "babel-preset-expo": "~9.2.0",
    "cypress": "^9.1.0",
    "detox": "19.12.1",
    "eas-cli": "2.1.0",
    "eslint": "8.2.0",
    "eslint-config-prettier": "8.1.0",
    "eslint-plugin-cypress": "^2.10.3",
    "eslint-plugin-import": "2.25.2",
    "eslint-plugin-jsx-a11y": "6.4.1",
    "eslint-plugin-react": "7.26.1",
    "eslint-plugin-react-hooks": "4.2.0",
    "expo-cli": "6.0.5",
    "jest": "27.2.3",
    "jest-circus": "28.1.1",
    "jest-environment-jsdom": "28.1.1",
    "jest-expo": "46.0.1",
    "metro-resolver": "0.72.2",
    "prettier": "^2.3.1",
    "react-test-renderer": "17.0.2",
    "release-it": "^15.2.0",
    "swagger-cli": "^4.0.4",
    "ts-jest": "27.0.5",
    "ts-node": "10.9.1",
    "typeconv": "^1.8.0",
    "typescript": "~4.4.3"
  }

环境版本

  • Node:16.13.0
  • npm:8.1.0

问题原因

从依赖版本可以看到,@nrwl/expo和@nrwl/detox的版本为14.8.3,但其他Nx核心包(如@nrwl/cli、@nrwl/react等)均为13.4.1,版本不匹配是触发该报错的核心原因。Nx工作区要求所有@nrwl/*包保持一致版本,否则会导致内部API调用异常,出现"path参数未定义"这类错误。

解决方案

  1. 统一Nx包版本
    修改package.json中devDependencies里的@nrwl/expo和@nrwl/detox版本,与其他Nx包保持一致:

    "@nrwl/detox": "13.4.1",
    "@nrwl/expo": "13.4.1",
    
  2. 清理依赖并重新安装
    执行以下命令:

    rm -rf node_modules package-lock.json
    npm install
    
  3. 清理Nx缓存

    npx nx reset
    
  4. 重新启动应用

    npx nx run my-app:start
    

内容的提问来源于stack exchange,提问作者Mike_NotGuilty

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 02:15:34