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



我使用Webpack为我的JS应用程序。对于样式,我使用Sass。我的应用程序非常大,所以我使用了很多@mixins和@includes。

在过去的几天里(而应用程序的sass数据增长了一点),我多次面临相同的以下错误:"未捕获的RangeError:超过最大调用堆栈大小".

你们中有人以前和萨斯也有过这样的问题吗?这种错误通常是如何发生的?

编辑:

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

是否有一种有效的方法来假装达到浏览器的调用堆栈大小那么容易?我读过webpack的Uglify,但这只是减少了我的应用程序的大小,而不是调用的数量,对吧?

还有其他想法吗?

我找到了一个答案:https://github.com/webpack/webpack/issues/1583

当我对.less文件进行更改时,会发生此问题。[HPM]会注意到这个变化,但不能更新浏览器,RangeError也一样。

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

我最近遇到了同样的问题,遇到了这个线程,但我的问题是React App Build in Webpack和Uglify bundle错误。下面在节点构建命令中的更改解决了我的问题。

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

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

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

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

如何验证并给出正确的尺寸?

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

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

当调用npm install webpack时,我得到Maximum call stack size exceeded

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

最新更新