當前端項目過大時,運行的時候就會碰到內存溢出的問題:
這個時候需要全局安裝 increase-memory-limit插件
執行 npm install -g increase-memory-limit
在package.json的同級目錄下輸入increase-memory-limit 運行這個插件:
然后重啟項目。
如果重啟的時候出現報錯:
那這個時候就麻煩一點了,需要修改node_modules下的.bin文件中的所有.cmd文件,將里面的"%_prog%" 去掉雙引號 改成 %_prog%
原生vscode不支持對.cmd文件的全局修改,下面提供一種使用node對指定文件進行全局修改的解決方案:
這串代碼需要在node環境下執行,需要引入fs模塊(const fs = require('fs'))
function replaceStr(filePath, sourceRegx, targetSrt) { //文件路徑、 需要修改的字符串、修改后的字符串 fs.readFile(filePath, (err,data)=>{ if(err) console.log(err) else { let str = data.toString(); str = str.replace(sourceRegx, targetSrt); fs.writeFile(filePath, str, (err)=>{ if(err) console.log(err); }) } }) }
這里我使用了絕對路徑,如果你的項目build文件與node_modules文件在同級目錄,並且你打算將下面的代碼放在build目錄下的webpack.*.config.js文件里面去執行這段代碼 (執一次就可以刪掉)。
(引入path模塊后),那么你的路徑也可以寫成:var wfPath = path.resolve(__dirname, '../node_modules/.bin');
讀取文件、修改文件
var wfPath = 'D:/***/***/node_modules/.bin';
fs.readdir(wfPath, (err, files)=>{ if(err) console.log(err); else { if(files.length != 0 ) { files.forEach((item)=>{ var wfPath = 'D:/***/***/node_modules/.bin';// 或者var wfPath = path.resolve(__dirname, '../node_modules/.bin') if(item.split('.')[1] === 'cmd') { wfPath += `/${item}`; replaceStr(wfPath, /"%_prog%"/, '%_prog%') } }) } } })
直接執行這個文件 node 文件名
或者進入到build目錄下執行這個文件,node webpack.*.config.js //將這段代碼放在webpack.*.config.js的情況
隨后就可以重啟項目了。
本人初級程序員一枚~
歡迎大家進群交流:
