2013-06-24 37 views

回答

5

除非您在GruntJS中進行一些非常高級的編程,否則我認爲您可能會註冊一個循環任務。

如果名稱的任務相同的名稱作爲插件它將運行的時間無限量:

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

這將導致任務自稱。

爲了驗證你正在做什麼,使用--verbose(或-v)命令運行grunt以查看正在運行的是哪個grunt。例如運行grunt uglify --v並注意它運行多少次。通過將任務名稱更改爲其他名稱可以很容易地解決這個問題。

然而,如果你確信你在做繁重的運行與--max-stack-size=10000 或什麼什麼......

1

npm install grunt-cli安裝grunt-cli本地然後在本地調用它:?

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

儘管可能因爲應該修復的無限遞歸而得到該錯誤。

0

類似的問題happend給我,當我dynamicaly通過grunt.task.run()稱爲任務。 似乎在NodeJs堆棧中填充了grunt的success回調。

我執行了手動編輯c:\Users\%UserName%\AppData\Roaming\npm\grunt.cmd(在Windows上)。添加您的節點版本支持的參數,例如--stack_size=2000(有關詳細信息,請使用node -help)。

1

這應該在Linux或Mac工作:

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

10000可以通過自己需要的任何尺寸進行更換。

我的Mac和最近一直在研究的Ubuntu服務器上的默認值是984。

另一種方法是添加到您的.bashrc.bach_profile或等價的:

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