代码之家  ›  专栏  ›  技术社区  ›  Kamil Kamili

重复的模块名:react native

  •  28
  • Kamil Kamili  · 技术社区  · 8 年前

    我跑 Pod Update 在我的xcode项目中,现在由于下载了重复的模块,我的项目没有编译。有人知道解决办法吗?

    Looking for JS files in
       /Users/.../App/Finalv2 
    
    
    Metro Bundler ready.
    
    Loading dependency graph...jest-haste-map: @providesModule naming collision:
      Duplicate module name: react-native
      Paths: /Users/.../App/Finalv2/node_modules/react-native/package.json collides with /Users/.../App/Finalv2/ios/Pods/React/package.json
    
    This warning is caused by a @providesModule declaration with the same name across two different files.
    Loading dependency graph, done.
    

    更新: 我删除了我的 node_modules 文件夹和 package.lock.json 然然 npm install 但问题仍然存在

    编辑:

    添加我的 Package.json

    {
      "name": "sample-app",
      "version": "0.0.1",
      "private": true,
      "scripts": {
        "start": "node node_modules/react-native/local-cli/cli.js start",
        "test": "jest"
      },
      "dependencies": {
        "@expo/vector-icons": "^6.2.2",
        "art": "^0.10.1",
        "axios": "^0.17.1",
        "expo": "^24.0.2",
        "firebase": "^4.6.0",
        "lodash": "^4.17.4",
        "moment": "^2.19.3",
        "native-base": "^2.3.3",
        "prop-types": "^15.6.0",
        "react": "^16.3.1",
        "react-native": "^0.55.3",
        "react-native-camera": "^0.10.0",
        "react-native-circular-progress": "git+https://github.com/kk1429/react-native-circular-progress.git",
        "react-native-countdown-circle": "^2.0.0",
        "react-native-country-picker-modal": "^0.5.1",
        "react-native-device-info": "^0.13.0",
        "react-native-easy-grid": "^0.1.16",
        "react-native-elements": "^0.18.5",
        "react-native-fcm": "^11.2.0",
        "react-native-fetch-blob": "^0.10.8",
        "react-native-firebase": "^4.1.0",
        "react-native-linear-gradient": "^2.4.0",
        "react-native-linkedin": "^1.2.1",
        "react-native-material-ui": "^1.19.0",
        "react-native-navigation": "^1.1.471",
        "react-native-progress": "^3.4.0",
        "react-native-pull-refresh": "^1.0.0",
        "react-native-rename": "^2.2.2",
        "react-native-svg": "^5.4.2",
        "react-native-svg-animated-linear-gradient": "^0.1.8",
        "react-native-swiper": "^1.5.13",
        "react-native-tag-input": "git+https://github.com/kk1429/react-native-tag-input.git",
        "react-native-thumbnail-video": "0.0.8",
        "react-native-vector-icons": "^4.4.2",
        "react-native-video": "^2.0.0",
        "react-navigation": "^1.0.0-beta.19",
        "react-redux": "^5.0.6",
        "react-save-refs": "^1.0.2",
        "redux": "^3.7.2",
        "redux-devtools-extension": "^2.13.2",
        "redux-persist": "^5.3.4",
        "redux-thunk": "^2.2.0",
        "whatwg-fetch": "^2.0.3"
      },
      "devDependencies": {
        "babel-jest": "22.1.0",
        "babel-preset-react-native": "4.0.0",
        "jest": "22.1.4",
        "react-test-renderer": "16.2.0"
      },
      "jest": {
        "preset": "react-native"
      },
      "rnpm": {
        "assets": [
          "./assets/fonts/"
        ]
      }
    }
    

    更新

    运行 NPM安装 出了个奇怪的错误

    > fsevents@1.2.4 install /Users/.../App/Finalv2/node_modules/fsevents
    > node install
    
    [fsevents] Success: "/Users/.../App/Finalv2/node_modules/fsevents/lib/binding/Release/node-v64-darwin-x64/fse.node" already installed
    Pass --update-binary to reinstall or --build-from-source to recompile
    
    > grpc@1.10.1 install /Users/kaaddevelopers/Documents/Clipme/App/Finalv2/node_modules/grpc
    > node-pre-gyp install --fallback-to-build --library=static_library
    
    node-pre-gyp ERR! Tried to download(403): https://storage.googleapis.com/grpc-precompiled-binaries/node/grpc/v1.10.1/node-v64-darwin-x64-unknown.tar.gz
    node-pre-gyp ERR! Pre-built binaries not found for grpc@1.10.1 and node@10.1.0 (node-v64 ABI, unknown) (falling back to source compile with node-gyp)
    
    4 回复  |  直到 8 年前
        1
  •  136
  •   Dehli    7 年前

    我只是花了一些时间到处寻找解决方案,终于找到了一些工作!我不使用FielBASE,但这里的讨论是有帮助的: https://github.com/invertase/react-native-firebase/issues/414 你必须在播客文件中添加两行。

    # Add these to your Podfile
    pod 'React', :path => '../node_modules/react-native'
    pod 'yoga', :path => '../node_modules/react-native/ReactCommon/yoga'
    

    然后运行以下命令以确保重新安装可可豆。

    cd ios
    rm -rf Pods
    pod install
    
        2
  •  2
  •   MoKhajavi75    8 年前

    尝试:

    1. watchman watch-del-all
    2. rm -fr $TMPDIR/react-*
    3. erase jest-cache folder
    4. rm -rf node_modules
    5. npm install
    6. npm cache clean && npm start -- --reset-cache

    更新

    也尝试 download the latest node js 并运行 npm install -g npm

        3
  •  0
  •   TheJoker    7 年前

    加上@dehli的回答,如果:

    1. 您已将react native作为react native模块的“依赖项”

      解决方案:将react native移到package.json中的“peerDependency”

    2. 您已经转移到peerDependency,并将应用程序的package-lock.json列表作为对模块的依赖项进行本地响应

      解决方案:删除应用程序中的package-lock.json,清除npm_modules文件夹并运行 npm install 再一次

        4
  •  0
  •   Jeff Gu Kang    7 年前

    移除“pod”文件夹中的“react”文件夹

    把这个添加到最后一个之后的pod文件的底部 end

    post_install do |installer|
      installer.pods_project.targets.each do |target|
    
    # The following is needed to ensure the "archive" step works in XCode.
    # It removes React & Yoga from the Pods project, as it is already included in the main project.
    # Without this, you'd see errors when you archive like:
    # "Multiple commands produce ... libReact.a"
    # "Multiple commands produce ... libyoga.a"
    
        targets_to_ignore = %w(React yoga)
    
        if targets_to_ignore.include? target.name
          target.remove_from_project
        end
    
      end
    end
    

    移除你的 Pods 文件夹,然后转到 pod install

        5
  •  0
  •   Heo Đất Hades    6 年前

    在我的例子中,因为我通过pod链接了一个库,所以它会自动对pod进行安装。所以我更新了我的播客文件:

    target 'MyProject' do
      # Uncomment the next line if you're using Swift or would like to use dynamic frameworks
      # use_frameworks!
    
      rn_path = '../node_modules/react-native'
      pod 'React', path: rn_path, subspecs: [
       'Core',
       'CxxBridge',
       'DevSupport',
       'RCTActionSheet',
       'RCTAnimation',
       'RCTGeolocation',
       'RCTImage',
       'RCTLinkingIOS',
       'RCTNetwork',
       'RCTSettings',
       'RCTText',
       'RCTVibration',
       'RCTWebSocket',
     ]
      pod 'yoga', :path => '../node_modules/react-native/ReactCommon/yoga'
      pod 'Folly', :podspec => '../node_modules/react-native/third-party-podspecs/Folly.podspec'
    //Another libraries here
      pod 'RNImageTools', :path => '../node_modules/react-native-image-tools-wm'
    
    
      post_install do |installer|
        installer.pods_project.targets.each do |target|
    
          # The following is needed to ensure the "archive" step works in XCode.
          # It removes React & Yoga from the Pods project, as it is already included in the main project.
          # Without this, you'd see errors when you archive like:
          # "Multiple commands produce ... libReact.a"
          # "Multiple commands produce ... libyoga.a"
    
          targets_to_ignore = %w(React yoga)
    
          if targets_to_ignore.include? target.name
            target.remove_from_project
          end
    
        end
      end
    
    end
    

    然后我移除 Pods 文件夹和运行 pod install . 那一切。