webpackのbuildでUglifyjsのエラーが出るようになってしまったので、とりあえず検索してUglifyjsのバージョンを上げたら直るというのを見かけたので、バージョンを3.3.12にアップしてみた。
そして再度buildを試したら、今度は以下のようなbuildでout of memoryが…。
<--- Last few GCs --->
[31471:0x104801a00] 152664 ms: Mark-sweep 1374.4 (1434.2) -> 1374.3 (1442.8) MB, 1552.8 / 0.0 ms allocation failure GC in old space requested
[31471:0x104801a00] 154021 ms: Mark-sweep 1374.3 (1442.8) -> 1374.3 (1427.2) MB, 1357.4 / 0.0 ms last resort GC in old space requested
[31471:0x104801a00] 155356 ms: Mark-sweep 1374.3 (1427.2) -> 1374.3 (1427.2) MB, 1335.3 / 0.0 ms last resort GC in old space requested
<--- JS stacktrace --->
==== JS stack trace =========================================
Security context: 0x6a0f38254d9 <JSObject>
1: /* anonymous */ [/Users/hoge-user/rails/example.com/node_modules/webpack-sources/node_modules/source-map/lib/source-node.js:~342] [pc=0x10c654a43b55](this=0x6a04798c419 <JSGlobal Object>,chunk=0x6a02f6e65f1 <String[12]: dataLabels&&>,original=0x6a0497e0811 <Object map = 0x6a09b05b751>)
2: SourceNode_walk [/Users/hoge-user/rails/example.com/node_modules/webpack-sources/nod...
FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory
1: node::Abort() [/usr/local/bin/node]
2: node::FatalTryCatch::~FatalTryCatch() [/usr/local/bin/node]
3: v8::Utils::ReportOOMFailure(char const*, bool) [/usr/local/bin/node]
4: v8::internal::V8::FatalProcessOutOfMemory(char const*, bool) [/usr/local/bin/node]
5: v8::internal::Factory::NewUninitializedFixedArray(int) [/usr/local/bin/node]
6: v8::internal::(anonymous namespace)::ElementsAccessorBase<v8::internal::(anonymous namespace)::FastPackedObjectElementsAccessor, v8::internal::(anonymous namespace)::ElementsKindTraits<(v8::internal::ElementsKind)2> >::GrowCapacity(v8::internal::Handle<v8::internal::JSObject>, unsigned int) [/usr/local/bin/node]
7: v8::internal::Runtime_GrowArrayElements(int, v8::internal::Object**, v8::internal::Isolate*) [/usr/local/bin/node]
8: 0x10c6542042fd
9: 0x10c654a43b55
Abort trap: 6
何かどんどん泥沼にハマっている気がするけど、とりあえず、out of memoryは昔のJavaで苦しんだ記憶があり、その時は大体ヒープサイズを増やす事で対応していた
なので、きっとjavascriptも同じなのだろうと調べると、NODE_OPTIONSとやらにmax-old-space-sizeで指定すれば良いらしい。
デーモンとして動かす訳でもなくbuild時の一発だけなので、とりあえず潤沢に8Gを与える事にした。
NODE_OPTIONS="--max-old-space-size=8192"
これでout of memoryは解決したが、まだUglifyjsの方が解決出来ていない…。
dev環境だと問題ないのに、productionでbuildしようとしたらエラーになる。
とりあえず調査を続行しよう。
コメント