在Jenkins的Docker中,React应用构建失败,但在本地无法失败

问题描述

在我的本地计算机上,npm run build可以正常工作。在通过詹金斯(Jenkins)启动的Docker映像上,遇到类似问题

Cannot find module: 'file-saver'. Make sure this package is installed.

You can install this package by running: npm install file-saver.

FAIL src/core/App.test.js
  ● Test suite Failed to run

    Cannot find module 'surface-nets' from 'vtext.js'

在本地计算机上,我已经清除了npm缓存(npm cache clean -f),删除node_modules/,然后重新安装了(npm i)。我什至使用npm updatenpm-check-updates包来更新所有内容。我安装了所有对等依赖项。我的本地副本应与Docker中的副本一样干净。在Jenkinsfile中,我放入了npm list,它显示surface-netsfile-saver以及所有其他软件包。我还放了ls node_modules/,可以看到其中的软件包文件夹。我已将Dockerfile减少到仅1行:FROM node:current

为什么在安装模块时说“找不到模块”?

解决方法

此问题的根本原因仍然未知,但是我确实发现该存储库已损坏。我最后擦除了整个远程仓库,然后git init-新建了一个仓库,然后继续进行。我认为腐败助长了这里的问题。