問題
? ? ? ?當(dāng)使用NodeJS的atool-build對(duì)前端項(xiàng)目進(jìn)行打包時(shí),出現(xiàn)了JavaScript heap out of memory錯(cuò)誤(內(nèi)存溢出),如下:

原因
? ? ? ?出現(xiàn)這個(gè)問題的原因,是因?yàn)镹odeJS給JavaScript設(shè)置了默認(rèn)內(nèi)存使用限制(32位系統(tǒng)下0.7GB,64位系統(tǒng)下1.4GB),就算我們的電腦內(nèi)存是64GB的,在使用atool-build打包時(shí)也要遵循這個(gè)內(nèi)存使用限制。
? ? ? ?在用atool-build對(duì)項(xiàng)目進(jìn)行打包時(shí),如果項(xiàng)目比較小,代碼比較少,一般不會(huì)超過這個(gè)限制;但如果項(xiàng)目比如大,文件比較多,代碼又比較多,那么就可能超過這個(gè)限制,拋出JavaScript heap out of memory內(nèi)存溢出錯(cuò)誤。
解決辦法
? ? ? ?既然知道了原因,就有了解決辦法:手動(dòng)調(diào)大這個(gè)限制,比如將這個(gè)限制調(diào)整為4GB(再不行就調(diào)為8GB),這樣就算項(xiàng)目比較大,也不容易達(dá)到限制導(dǎo)致錯(cuò)誤發(fā)生。
? ? ? ?打開項(xiàng)目目錄下node_modules的子目錄.bin,找到atool-build.cmd這個(gè)命令文件(如果使用的是webpack,那么就找到此目錄下的webpack.cmd文件),然后使用文本編輯器打開此文件,在箭頭所指的位置加上--max_old_space_size=4096然后保存(單位為MB,例如此處的4096就是4GB的意思)。

? ? ? ?重新執(zhí)行打包命令,問題解決