ios - React Native ios 构建 - 修改node_modules包中的文件

标签 ios xcode react-native

我在为属于 node_modules 包的文件构建 ios 期间遇到以下错误:

bundling failed: SyntaxError: /Users/user148634/Desktop/mobile-ui/PriceInsight_app/node_modules/react-native/node_modules/react-native/Libraries/Components/Switch/Switch.js: Support for the experimental syntax 'nullishCoalescingOperator' isn't currently enabled (167:52):

根据此消息,该文件位于以下路径中:

node_modules/react-native/node_modules/react-native/Libraries/Components/Switch/Switch.js

但是,我可以在以下路径中看到该文件:

node_modules/react-native/Libraries/Components/Switch/Switch.js

(文件夹 node_modules/react-native/node_modules/react-native 不存在)。

我尝试修改 node_modules/react-native/Libraries/Components/Switch/Switch.js 但它没有任何效果,我在构建过程中遇到了同样的错误。

知道为什么显示不存在的路径吗?知道如何修改文件以影响构建吗?

这是我的 package.json 文件:

{
  "name": "newapp",
  "version": "0.0.2",
  "private": true,
  "scripts": {
    "start": "node node_modules/react-native/local-cli/cli.js start",
    "test": "jest --verbose --coverage",
    "test:update": "jest --verbose --coverage --updateSnapshot",
    "test:watch": "jest --verbose --watch",
    "coverage": "jest --verbose --coverage && xdg-open ./coverage/lcov-report/index.html",
    "lint": "npx eslint --fix ./src/*"
  },
  "dependencies": {
    "adm-zip": "^0.4.13",
    "apollo-boost": "0.1.17",
    "axios": "^0.18.0",
    "babel": "^6.23.0",
    "buffer": "5.1.0",
    "cross-fetch": "^3.0.0",
    "enzyme": "^3.3.0",
    "fastfall": "^1.5.1",
    "got": "^9.5.1",
    "graphql": "0.13.2",
    "graphql-tag": "2.10.0",
    "jasmine-react-helpers": "^0.2.2",
    "link": "^0.1.5",
    "lodash": "4.17.5",
    "moment": "2.21.0",
    "plist": "^3.0.1",
    "query-string": "^6.1.0",
    "react": "16.2.0",
    "react-addons-test-utils": "^15.6.2",
    "react-apollo": "2.2.4",
    "react-dom": "^16.7.0",
    "react-native": "^0.57.0",
    "react-native-elements": "0.19.0",
    "react-native-fabric": "^0.5.2",
    "react-native-fbsdk": "^0.6.3",
    "react-native-htmlview": "^0.12.1",
    "react-native-link-preview": "^1.3.5",
    "react-native-login": "^0.0.1-alpha.2",
    "react-native-login-keycloak": "^1.0.2",
    "react-native-onesignal": "3.2.6",
    "react-native-push-notification": "https://github.com/Dhanraj-bidchat/react-native-push-notification.git",
    "react-native-sleek-loading-indicator": "^0.1.3",
    "react-native-spinkit": "^1.1.1",
    "react-native-svg": "6.2.2",
    "react-native-swipe-cards": "^0.1.1",
    "react-native-swiper": "1.5.13",
    "react-native-vector-icons": "4.5.0",
    "react-navigation": "1.5.6",
    "react-redux": "5.0.7",
    "redux": "^3.7.2",
    "redux-logger": "^3.0.6",
    "redux-persist": "5.9.1",
    "redux-thunk": "^2.2.0",
    "victory-native": "0.17.2",
    "whatwg-fetch": "2.0.4",
    "xcode": "^1.1.0"
  },
  "devDependencies": {
    "@babel/plugin-proposal-optional-chaining": "^7.2.0",
    "babel-eslint": "^8.2.3",
    "babel-jest": "^22.4.4",
    "babel-plugin-dynamic-import-node": "^1.2.0",
    "babel-plugin-syntax-dynamic-import": "^6.18.0",
    "babel-plugin-transform-class-properties": "^6.24.1",
    "babel-plugin-transform-es2015-modules-commonjs": "^6.26.2",
    "babel-preset-env": "^1.7.0",
    "babel-preset-react-native": "5.0.0",
    "enzyme-adapter-react-16": "^1.1.1",
    "enzyme-to-json": "^3.3.4",
    "eslint": "^4.19.1",
    "eslint-config-standard": "^11.0.0",
    "eslint-plugin-import": "^2.12.0",
    "eslint-plugin-jest": "^21.17.0",
    "eslint-plugin-node": "^6.0.1",
    "eslint-plugin-only-warn": "^1.0.1",
    "eslint-plugin-promise": "^3.8.0",
    "eslint-plugin-react": "^7.9.1",
    "eslint-plugin-standard": "^3.1.0",
    "jest": "^23.5.0",
    "jest-resolve": "^23.0.0",
    "jest-serializer-enzyme": "^1.0.0",
    "react-native-mock-render": "^0.0.26",
    "react-test-renderer": "^16.3.2",
    "redux-mock-store": "^1.5.1",
    "sinon": "^5.0.10"
  },
  "jest": {
    "preset": "react-native",
    "setupFiles": [
      "./jest-setup.js"
    ],
    "snapshotSerializers": [
      "enzyme-to-json/serializer"
    ],
    "modulePaths": [
      "<rootDir>/src",
      "<rootDir>/node_modules"
    ],
    "transform": {
      "^.+\\.js$": "babel-jest",
      "^.+\\.jsx?$": "babel-jest"
    },
    "transformIgnorePatterns": [
      "node_modules/(?!(react-native-safe-area-view|react-navigation|react-native-htmlview|react-native-fabric|react-native-login|react-native-elements|react-native-vector-icons|react-native-spinkit|victory-pie|victory-chart|victory-core|react-native-svg|react-native|redux-persist|victory-native|react-native-swipe-cards|react-native-swiper)/)"
    ],
    "moduleNameMapper": {
      "\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$": "<rootDir>/assetsTransformer.js",
      "\\.(css|less)$": "<rootDir>/assetsTransformer.js"
    }
  }
}

最佳答案

将 .babelrc 更改为

{
 "presets": ["module:metro-react-native-babel-preset"]
}

关于ios - React Native ios 构建 - 修改node_modules包中的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54301878/

相关文章:

ios - UIPickerView 弹窗

ios - 配置门户,付费成员(member)?

iphone - NSNotificationCenter 不对消息起作用

xcode - 如何在 mac 的终端中使用 g++?

javascript - Expo Google 登录 DEVELOPER_ERROR

ios - 快速绘制圆弧时的额外线条

objective-c - objective-c 中的加号 (+) 与减号 (-)

Xcode - 使用 SSH 身份验证添加存储库时出现身份验证失败错误

javascript - 如何在 React Native 中监听触摸事件?

javascript - React Native 中的简单警报 - 按下时的功能