当我为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
有人有与此类似的问题吗?如何确保这种情况不会继续发生?
答案 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
之前安装依赖关系。
希望有帮助!