npm异常:FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed

时间:2025-03-28 11:09:47

执行npm run build打包vue项目时报这个错,是因为设置的node文件的最大值不够,项目打包后的文件过大导致的。

解决方案:全局安装increase-memory-limit

命令行cmd ,dos窗口运行:cnpm install -g increase-memory-limit,

进入项目文件夹,运行:increase-memory-limit

如果进入项目文件后执行increase-memory-limit后,npm run build报错'"node --max-old-space-size=10240"'不是内部或外部命令,也不是可运行的程序"'

可以在项目根目录下创建以下js文件内容,用node执行该文件,再运行npm run build就可以打包成功了。此处是为了替换node_mosules文件下的.bin文件对应文件内字符串的公共函数。

// 第一次运行项目时通过node执行此脚本
const fs = require('fs')
const path = require('path')
const wfPath =  (__dirname, './node_modules/.bin')

(wfPath, (err, files)=>{
   if (err) {
    (err);
   } else {
      if( != 0 ) {
        ((item)=>{
           if(('.')[1] === 'cmd') {
              replaceStr(`${wfPath}/${item}`, /"%_prog%"/, '%_prog%')
           }
        })
     }
   }
 })

// 参数:[文件路径、 需要修改的字符串、修改后的字符串] (替换对应文件内字符串的公共函数)
function replaceStr(filePath, sourceRegx, targetSrt) {
  (filePath, (err, data)=>{
     if(err) {
     (err)
     } else {
       let str = ();
      str= (sourceRegx, targetSrt);
       (filePath, str, (err)=> { (err) })
     }
  })
}