最近需要在離線機器上運行軟件,所以得把軟件用docker打包起來,大部分功能都沒問題,出了一個奇怪的事情。同樣的代碼,在本機上用vscode可以運行起來,但是打包之后在docker里出現了問題。使用的是dialog組件,點擊按鈕之后屏幕變暗,但是沒顯示任何數據,調出控制臺看了一下,后端返回的數據也是正確的。
經過不懈的排查,發現原來是彈窗組件里有個數據報錯如題所示,導致了整個界面無法顯示。奇怪的是同樣用docker容器作為后端和數據庫,vscode運行的項目可以正常顯示,但是docker使用npm run build構建的前端卻出現了問題,匪夷所思。剛開始懷疑是樣式的問題,調整了半天發現并不是。后面仔細看了下代碼,發現這個問題應該是訪問了一個未定義的變量的屬性,所以得給個初始值,調整后還是不行,最后終于是發現了問題:
彈窗中有個訪問了一個item[xx],但是這個item的初始化用的是const賦值為空,后面才在函數中給item賦值了,總所周知,const定義的變量是個常量,改成let之后就可以運行成功了。。。
真是頭大的一天,不理解為啥vscode用npm run serve 運行的前端就可以正常顯示