‘“node --max-old-space-size=4096“‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件。
问题描述使用npm run dev的时候报如下错误:‘“node --max-old-space-size=4096”’ 不是内部或外部命令,也不是可运行的程序或批处理文件。FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory两种情况,vue-
问题描述
使用npm run dev的时候报如下错误:
‘“node --max-old-space-size=4096”’ 不是内部或外部命令,也不是可运行的程序或批处理文件。
FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory
两种情况,vue-cli2和vue-cli3:
1. 如果是使用的vue-cli2,那么解决办法如下:
npm run dev 和 npm run build 直接在前面加上–max_old_space_size=4096
参考地址:https://blog.csdn.net/win7583362/article/details/86305780
2. 如果是使用的vue-cli3,解决办法如下:
安装两个npm包 : cross-env
increase-memory-limit
npm install cross-env increase-memory-limit
安装完成后,先执行一次 npm run fix-memory-limit,然后npm run dev即可。
启动之前先检查下配置是否有fix-memory-limit
...
"scripts": {
"serve": "vue-cli-service serve",
"build": "vue-cli-service build",
"fix-memory-limit": "cross-env LIMIT=4096 increase-memory-limit",
},
操作完以上步骤之后,可能会报错 “node –max-old-space-size=4096不是内部或外部命令``”
该问题的解决办法:
在项目的node_modules.bin下面找到所有的*.cmd
文件,
在ENDLOCAL语句的上边一行,修改"%_prog%"
改为 %_prog%
, 去掉双引号。
或者写一个脚本修改:
// 运行项目前通过node执行此脚本 (此脚本与 node_modules 目录同级)
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) })
}
})
}
参考文献
参考文献
更多推荐
所有评论(0)