尝试创建发行包时,无法解析模块' AccessibilityInfo'

时间:2018-02-12 22:25:48

标签: react-native bundle

我正在运行

react-native bundle --platform windows --dev false --entry-file index.windows.js --bundle-output windows/app/ReactAssets/index.windows.bundle --assets-dest windows/app/ ReactAssets/

创建发布包的命令,但我收到了以下错误

Unable to resolve module `AccessibilityInfo` from `C:\Users\godha.pranay\project\node_modules\react-native\Libraries\react-native\react-native-implementation.js`: Module does not exist in the module map



This might be related to https://github.com/facebook/react-native/issues/4968

To resolve try the following:

  1. Clear watchman watches: `watchman watch-del-all`.

  2. Delete the `node_modules` folder: `rm -rf node_modules && npm install`.

  3. Reset Metro Bundler cache: `rm -rf $TMPDIR/react-*` or `npm start -- --reset-cache`.  4. Remove haste cache: `rm -rf $TMPDIR/haste-map-react-native-packager-*`.

我尝试了互联网上推荐的所有内容,但没有任何效果。我完全坚持下去了。请帮忙。

17 个答案:

答案 0 :(得分:68)

0.56中的错误似乎与依赖项有关。 “解决方案”是找到依赖项版本的正确组合。通过完全安装这些版本,我们找到了一种解决方法:

react-native >> 0.55.4
babel-core >> latest 
babel-loader >> latest
babel-preset-react-native >> 4.0.0

因此,您必须按顺序运行这些命令:

react-native init AwesomeProject
cd AwesomeProject
react-native run-android
npm uninstall react-native
npm install --save react-native@0.55.4
react-native run-android
npm install --save babel-core@latest babel-loader@latest
npm uninstall --save babel-preset-react-native
npm install --save babel-preset-react-native@4.0.0
react-native run-android

答案 1 :(得分:16)

如果您正在运行反应性原生版本0.56.0,则将其降级为0.55.4。

cd "on your project directory"
npm install react-native@0.55.4

如果您想知道原因,请遵循this issue

答案 2 :(得分:9)

我有同样的问题。

以前我的本机版本是

C:\WINDOWS\system32>react-native -v
react-native-cli: 2.0.1
react-native: 0.56.0

然后我卸载react-native

C:\WINDOWS\system32>npm uninstall -g react-native-cli
removed 41 packages in 3.999s

然后我安装了本机

npm install react-native@0.55.4

再次安装

npm install -g react-native-cli@1.2.0

然后安装创建本机项目的工作

react-native init --version="0.55.4" myprojectname

答案 3 :(得分:5)

    "dependencies": {
        "react": "^16.4.1",
        "react-native": "^0.55.4"
      },
    "devDependencies": {
        "babel-preset-react-native": "^4.0.0",
      },

然后按以下命令

    npm update
    npm cache clean --force
    cd android
    gradlew clean
    cd..
    react-native run-android

为我工作

答案 4 :(得分:4)

我还发现了最新的本机0.56.0错误。我试图降级,但仍然无法为我工作。 Windows操作系统中的此问题不在Mac中。

我尝试过的简单方法:

react-native init ProjectName --version=0.55.4

工作正常。

答案 5 :(得分:3)

react-native 0.56.0在Windows平台中已​​损坏。 请使用0.55.4

它将解决您的问题!

答案 6 :(得分:2)

以下内容解决了该问题:

npm install babel-preset-react-native

尝试运行npm run flow时可能会出现类似的问题。解决方法是

npm install babel-preset-flow

答案 7 :(得分:1)

最新版本的react-native中存在一个错误。要解决(至少是暂时解决)该问题,请使用以下版本的react和native native。

"react": "^16.4.1",
 "react-native": "^0.55.4"

答案 8 :(得分:0)

对我来说,我必须将.babelrc中的预设“ react-native”替换为“ module:react-native”

.babelrc:

     {
     "presets": ["module:react-native"]
     }

它将正常工作

答案 9 :(得分:0)

npm cache clean --force为我工作

答案 10 :(得分:0)

另一种方法:通过以下命令之一卸载react-native-cli的全局副本:

yarn global remove react-native-cli
npm uninstall -g react-native-cli

据我所知,您的项目可能会意外地从此全局安装的软件包而不是您自己的本地安装的软件包中生成Metro bundler(我是使用标准react-native-xcode.sh构建脚本遇到的)版本不匹配时出现问题。这是解决我的react-native v0.51分支问题所需要的全部内容(清除缓存并重新安装每个本地节点模块无效)。

我也确实删除了以下软件包,这些软件包在实践中可能并不相关:create-react-appcreate-react-native-appreact-native-macos-cli。基本上,只需列出所有全局安装的软件包并卸载任何与React Native相关的软件包。

答案 11 :(得分:0)

@abinax的回答对我很有用。

我认为与其使用最新版本的babel软件包,由于将来对babel进行更改可能会破坏现有兼容性,因此版本号会更合适。

这是对我有用的版本号。

react-native >> 0.55.4
babel-core >> 6.26.3
babel-loader >> 8.0.4
babel-preset-react-native >> 4.0.0

@abinax的版本更改答案:

react-native init AwesomeProject
cd AwesomeProject
react-native run-android
npm uninstall react-native
npm install --save react-native@0.55.4
react-native run-android
npm install --save babel-core@6.26.3 babel-loader@8.0.4
npm uninstall --save babel-preset-react-native
npm install --save babel-preset-react-native@4.0.0
react-native run-android

如果遇到此错误,可能还需要编辑.babelrc文件:

Couldn't find preset "module:metro-react-native-babel-preset" relative to directory  

.babelrc之前的

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

.babelrc之后

{
  "presets": ["react-native"]
}

答案 12 :(得分:0)

问题已解决-工作100%!

npm remove --save react-native
npm install --save react-native@0.55.4
npm remove babel-preset-react-native
npm install --save babel-preset-react-native@2.1.0

答案 13 :(得分:0)

反应本机+本机基础+ redux +反应兼容版本,直到date。 在Linux和Windows上都可以正常工作。

package.json

{
  "name": "ExampleAPP",
  "version": "0.0.1",
  "private": true,
  "scripts": {
    "start": "node node_modules/react-native/local-cli/cli.js start"
  },
  "dependencies": {
    "axios": "^0.18.0",
    "eslint": "^5.2.0",
    "native-base": "2.6.1",
    "react": "16.3.1",
    "react-native": "0.55.4",
    "react-native-router-flux": "^4.0.1",
    "react-redux": "^5.0.7",
    "redux": "^4.0.0",
    "redux-logger": "^3.0.6",
    "redux-thunk": "^2.3.0"
  },

  }
}

如果仍然出现错误,请删除node_modules文件夹并在项目目录中的终端中运行commmand

npm install 

答案 14 :(得分:0)

完美解决方案

尝试以最佳方式使版本相互兼容

这是the link

并保持诸如android sdkVersio之类的所有最新内容,例如2728

答案 15 :(得分:0)

尝试以下操作:

npm remove --save react-native
npm i --save react-native@0.55.4
npm remove babel-preset-react-native
npm i --save babel-preset-react-native@2.1.0

答案 16 :(得分:0)

它不适用于npm cache clean --force 或重启系统 或删除节点模块并重新安装。 当我们用最新版本创建新项目时,看起来顶级工作正常,但升级后一切似乎都停止了工作

我建议开始新项目。