更改咕噜任务的最大堆栈大小

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

最大调用堆栈大小超出“

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

除非你在GruntJS中进行一些非常高级的编程,否则你可能会注册一个循环任务。

如果您将任务命名为插件,则其运行时间无限:

 grunt.registerTask('uglify', ['uglify']) 

这导致任务调用自己。

为了validation你正在做什么,使用--verbose (或–v)命令运行grunt来查看正在运行的grunt。

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

但是如果你确定你正在做什么,用--max-stack-size=10000或其他什么来运行grunt …

npm install grunt-cli grunt-cli在本地npm install grunt-cli然后在本地调用它:

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

尽pipe可能由于应该修复的无限recursion而导致错误。

这应该在linux或mac上工作:

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

10000可以被任何你需要的大小所取代。

我的Mac和我最近一直在使用的Ubuntu服务器上的默认值是984。

另一种select是将其添加到.bashrc.bach_profile或等效文件中:

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

当我dynamic地通过grunt.task.run()调用任务时,发生类似的问题。 似乎咕噜的successcallback填补了NodeJs堆栈。

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