我使用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 ?
node --stack-size=1000 scripts/build.js
基本上,它取决于当前应用程序脚本的调用堆栈。
如何验证并给出正确的尺寸?
这基本上停留在我们的引擎v8
。下面的命令可以帮助您了解本地节点v8引擎的调用堆栈大小。
node --v8-options | grep -B0 -A1 stack-size
当调用npm install webpack
时,我得到Maximum call stack size exceeded
使错误消失的是先运行npm uninstall webpack
,然后再运行npm install webpack
。