nuxt下運行項目時內存溢出(out of memory)的一種情況


話不多說直接上代碼:

如圖,點紅點的三行引入了一個組件,內容是同意注冊協議的彈窗。但是在run dev的時候提示說內存溢出了(out of memory)...經過多方排查,定位到這個組件,警察叔叔就是他!

組件的內容非常簡單,總共不到70行代碼,就不再貼了。先刪掉了js,生命周期,methods,watch刪的干干凈凈;又開始刪template,只剩下一個<p>111</p>;css沒有動,它還能出什么幺蛾子?但是還是報錯啊!后來同事猜測說就是css的問題:我們的彈窗使用了element UI,為了覆蓋它的樣式,有幾行代碼是這么寫的:

問題就出在這個deep上面!之前在網上看到有一種覆蓋element樣式的寫法:

  • 父組件cssName+ /deep/+第三方庫需要更改的cssName
  • 例如 .parentCssName /deep/ .libCssName{}

但是我沒有采用這種方式,而是把所有需要覆蓋的樣式寫在了el_cover.css這個文件中。這個組件不是我寫的,同事和我用的不是同一個方法。如果我們統一標准的話就不會出現這個問題了,但是反過來想想也就不會知道有這么一個坑了。扯遠了,把deep去掉,代碼放在el_cover.css中,再次npm run dev,項目啟動成功。

ps,附一下vue官網關於css作用域的講解:https://vue-loader-v14.vuejs.org/zh-cn/features/scoped-css.html

pps,后來發現css的層級較深時也會出現內存溢出這個問題。

這里只是發現了nuxt下運行項目時out of memory的一個原因,至於為什么會這樣以及是否還有其他操作也會導致內存溢出,如果你知道,不妨像我一樣分享出來啊~

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM