更改咕噜任务的最大堆栈大小
我在我的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()
调用任务时,发生类似的问题。 似乎咕噜的success
callback填补了NodeJs堆栈。
我执行了c:\Users\%UserName%\AppData\Roaming\npm\grunt.cmd
(在Windows上)的手动编辑。 添加您的节点版本支持的参数,例如--stack_size=2000
(详细信息请使用node -help
)。