我運行到我GruntJS腳本以下錯誤:更改--max-堆棧大小咕嚕任務
最大調用堆棧大小超出」
什麼是對正確的語法在我咕嚕命令調用節點標誌--max-stack-size=
這樣我就可以留出較大的內存量堆
我運行到我GruntJS腳本以下錯誤:更改--max-堆棧大小咕嚕任務
最大調用堆棧大小超出」
什麼是對正確的語法在我咕嚕命令調用節點標誌--max-stack-size=
這樣我就可以留出較大的內存量堆
除非您在GruntJS中進行一些非常高級的編程,否則我認爲您可能會註冊一個循環任務。
如果名稱的任務相同的名稱作爲插件它將運行的時間無限量:
grunt.registerTask('uglify', ['uglify'])
這將導致任務自稱。
爲了驗證你正在做什麼,使用--verbose
(或-v)命令運行grunt以查看正在運行的是哪個grunt。例如運行grunt uglify --v
並注意它運行多少次。通過將任務名稱更改爲其他名稱可以很容易地解決這個問題。
然而,如果你確信你在做繁重的運行與--max-stack-size=10000
或什麼什麼......
與npm install grunt-cli
安裝grunt-cli
本地然後在本地調用它:?
node --max-stack-size=val ./node_modules/.bin/grunt
儘管可能因爲應該修復的無限遞歸而得到該錯誤。
類似的問題happend給我,當我dynamicaly通過grunt.task.run()
稱爲任務。 似乎在NodeJs堆棧中填充了grunt的success
回調。
我執行了手動編輯c:\Users\%UserName%\AppData\Roaming\npm\grunt.cmd
(在Windows上)。添加您的節點版本支持的參數,例如--stack_size=2000
(有關詳細信息,請使用node -help
)。
這應該在Linux或Mac工作:
node --stack-size=10000 `which grunt`
10000可以通過自己需要的任何尺寸進行更換。
我的Mac和最近一直在研究的Ubuntu服務器上的默認值是984。
另一種方法是添加到您的.bashrc
,.bach_profile
或等價的:
alias grunt='node --stack-size=10000 `which grunt`'