最近需要在离线机器上运行软件,所以得把软件用docker打包起来,大部分功能都没问题,出了一个奇怪的事情。同样的代码,在本机上用vscode可以运行起来,但是打包之后在docker里出现了问题。使用的是dialog组件,点击按钮之后屏幕变暗,但是没显示任何数据,调出控制台看了一下,后端返回的数据也是正确的。
经过不懈的排查,发现原来是弹窗组件里有个数据报错如题所示,导致了整个界面无法显示。奇怪的是同样用docker容器作为后端和数据库,vscode运行的项目可以正常显示,但是docker使用npm run build构建的前端却出现了问题,匪夷所思。刚开始怀疑是样式的问题,调整了半天发现并不是。后面仔细看了下代码,发现这个问题应该是**访问了一个未定义的变量的属性,**所以得给个初始值,调整后还是不行,最后终于是发现了问题:
弹窗中有个访问了一个item[xx],但是这个item的初始化用的是const赋值为空,后面才在函数中给item赋值了,总所周知,const定义的变量是个常量,改成let之后就可以运行成功了。。。
真是头大的一天,不理解为啥vscode用npm run serve 运行的前端就可以正常显示