执行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 =  path.resolve(__dirname, './node_modules/.bin')

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

// 参数:[文件路径、 需要修改的字符串、修改后的字符串] (替换对应文件内字符串的公共函数)
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)=> { console.log(err) })
     }
  })
}

Logo

基于 Vue 的企业级 UI 组件库和中后台系统解决方案,为数万开发者服务。

更多推荐