Webpack,Sass - 超出最大调用堆栈大小
我正在为我的 JS 应用程序使用 Webpack。对于样式,我使用 Sass。我的应用程序非常大,所以我使用了很多 @mixins 和 @includes。
在过去的几天里(当应用程序的 SASS 数据增长得更多时),我多次遇到以下相同的错误:“Uncaught RangeError:超出最大调用堆栈大小”。
你们中有人之前也遇到过 Sass 的这个问题吗?这个错误通常是如何发生的?
编辑:
好的,我发现,递归不是问题。它在 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 中的大小为 1000?
基本上,它取决于当前应用程序脚本的调用堆栈。
如何验证并给出正确的大小?
这基本上留在我们的引擎
v8
中。以下命令可帮助您了解本地节点 v8 引擎的调用堆栈大小。
node --v8-options | grep -B0 -A1 stack-size
我在调用
npm install webpack
时收到
Maximum call stack size reached
错误
解决此错误的方法是先运行
npm uninstall webpack
,然后再次运行
npm install webpack
。