Node.js 更改--grunt任务的最大堆栈大小

Node.js 更改--grunt任务的最大堆栈大小,node.js,gruntjs,Node.js,Gruntjs,我在GruntJS脚本中遇到以下错误: 超出最大调用堆栈大小“ 在我的grunt命令中调用节点标志--max stack size=,以便为堆栈留出更多内存的正确语法是什么?使用npm Install grunt cli本地安装grunt cli然后使用以下命令本地调用它: node --max-stack-size=val ./node_modules/.bin/grunt 虽然可能是由于无限递归而导致出现错误,但应该加以修复。除非您使用GruntJS进行一些非常高级的编程,否则我认为您可能

我在GruntJS脚本中遇到以下错误:

超出最大调用堆栈大小“


在我的grunt命令中调用节点标志
--max stack size=
,以便为堆栈留出更多内存的正确语法是什么?

使用
npm Install grunt cli
本地安装
grunt cli
然后使用以下命令本地调用它:

node --max-stack-size=val ./node_modules/.bin/grunt

虽然可能是由于无限递归而导致出现错误,但应该加以修复。

除非您使用GruntJS进行一些非常高级的编程,否则我认为您可能注册了一个循环任务

如果您将任务命名为与插件相同的名称,它将运行无限次:

grunt.registerTask('uglify', ['uglify'])
这将导致任务调用自身

为了验证您正在执行的操作,请使用
--verbose
(或--v)命令运行grunt以查看grunt正在运行的内容

例如,运行
grunt uglify--v
并注意它运行了多少次。通过将任务名称更改为其他名称,可以很容易地解决这个问题

但是,如果您确定正在执行的操作,请使用
--max stack size=10000运行grunt

或者随便什么…

当我通过
grunt.task.run()
动态调用任务时,类似的问题发生在我身上。 似乎grunt的
成功
回调填满了NodeJs堆栈


我对
c:\Users\%UserName%\AppData\Roaming\npm\grunt.cmd
(在Windows上)执行了手动编辑。添加您的节点版本支持的参数,例如
--stack\u size=2000
(有关详细信息,请使用
节点-help
)。

这应该可以在linux或mac上运行:

node --stack-size=10000 `which grunt`
10000可以由您需要的任何尺寸替换

在我的mac和我最近一直在使用的ubuntu服务器上,默认值是984

另一个选项是将其添加到您的
.bashrc
.bach_档案
或同等档案中:

alias grunt='node --stack-size=10000 `which grunt`'

你知道windows吗?