任务':app:bundleDevReleaseJsAndAssets'的执行失败

时间:2019-05-28 14:11:05

标签: reactjs react-native jenkins reactotron

当我为React Native项目运行Jenkins构建时,它失败并出现以下错误:

Unable to resolve module `reactotron-core-client` from `/Users/nfib/Jenkins/Jenkins-Workspaces/ENGA/ENGAL/node_modules/reactotron-redux/dist/index.js`: Module does not exist in the module map

Execution failed for task ':app:bundleDevReleaseJsAndAssets'.

我遵循推荐的rm -rf node_modules && npm install,但我不确定这是否会有所帮助,因为在我看来,它似乎是npm团队的通用解决方案。

反应本机版本:带有"reactotron-react-native": "3.5.0", "reactotron-redux": "3.1.0",的0.53.3

有人有与此类似的问题吗?如何确保这种情况不会继续发生?

1 个答案:

答案 0 :(得分:0)

问题是您的Jenkins构建服务器无法找到完成reactotron-core-client构建所必需的Jenkins模块。您可以从堆栈跟踪中看到这一点:

  

无法解析模块reactotron-core-client

npm团队的推荐解决方案:

rm -rf node_modules && npm install

是通用解决方案,因为此命令将删除先前包含项目依赖项的node_modules目录,然后将列出的依赖项重新安装在项目的package.json文件中。如果npm已在您的构建服务器上更新,这可以解决由锁定文件引起的问题以及版本控制问题。

如果您的package.json文件中列出了所有项目所需的库,则此解决方案可以解决您的问题。但是,如果reactotron-core-client文件中没有列出package.json库作为必需的依赖项,则此问题将继续存在。也许您可以尝试以下方法:

npm i --save reactotron-core-client

,因为这将为您的项目保存并安装reactotron-core-client依赖项。通过保存,我的意思是将此库列为您的package.json文件中的依赖项。

理想情况下,最好的选择是使 package.json文件与项目的依赖关系保持最新,并在尝试构建Jenkins之前安装依赖关系。

希望有帮助!