Webpack,Sass - 超出最大调用堆栈大小

时间:2016-08-09 15:36:54

标签: javascript sass webpack callstack

我正在使用Webpack作为我的JS应用程序。对于我使用Sass的风格。我的应用程序非常大,所以我使用了很多@mixins和@includes。

在最近几天(当应用程序的SASS数据增长更多时)我多次遇到相同的跟随错误: “未捕获RangeError:超出最大调用堆栈大小”。

你们之前有没有人和Sass有过这个问题?这种错误通常如何发生?

编辑:

好的,我发现,递归不是问题所在。它适用于Mac的Firefox和Windows的大多数浏览器,但不适用于Mac的Chrome和Safari,因为它们的调用堆栈大小限制较低。

是否有一种有效的方式来假装轻松达到浏览器的调用堆栈大小?我读到了关于webpack的Uglify,但这只会减少我的应用程序的大小,而不是通话量,对吗?

还有其他想法吗?

3 个答案:

答案 0 :(得分:1)

我通过以下方式找到答案:https://github.com/webpack/webpack/issues/1583

当我对.less文件进行更改时,会发生此问题。 [HPM]会注意到更改,但无法更新浏览器以及RangeError

new HotModuleReplacementPlugin()部分注释掉plugins后,溢出消失了,CSS更新开始有效。

希望这有助于其他人。

答案 1 :(得分:1)

我最近也遇到了同样的问题,并遇到了这个线程,但是我的问题是React Webpack中的App Build和Uglify捆绑包错误。下面的node build命令更改解决了我的问题。

语法

node --stack-size=<your-size> scripts/build.js

示例

node --stack-size=1000 scripts/build.js

为什么max-old-space-size的大小是1000?

基本上,它取决于当前应用程序脚本的调用堆栈。

如何验证尺寸并提供合适的尺寸?

这基本上留在我们的引擎v8中。下面的命令可帮助您了解本地节点v8引擎的调用堆栈大小。

node --v8-options | grep -B0 -A1 stack-size

答案 2 :(得分:0)

致电Maximum call stack size exceeded时我得到npm install webpack

使错误消失的原因是先运行npm uninstall webpack,然后再运行npm install webpack