npm run build --prod でメモリエラーが発生した
ionic で開発をしていて、
npm run build --prod
を実行したら、out of memory エラーが発生しました。
解消方法がわかったので、メモしておきます。
事象
npm run build --prod
を実行したら、以下のエラーが発生しました。
FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory 1: 0x1000382c7 node::Abort() [/usr/local/bin/node] 2: 0x100038498 node::FatalTryCatch::~FatalTryCatch() [/usr/local/bin/node] 3: 0x10016deeb v8::Utils::ReportOOMFailure(v8::internal::Isolate*, char const*, bool) [/usr/local/bin/node]
ネットで調べてみると、メモリを上げれば治るという情報が多く、 試してみるのですが、うまくいかず。
以下の対応で解消できたので、メモしておきます。
確認環境
バージョン | |
---|---|
webpack | 3.11.0, 3.12.0 |
node | 10.14.1 |
ionic cli | 4.2.1 |
macOS | 10.14.1 |
解消方法
追記
optimizeの処理が原因のようで、こちらのコマンドを実行して、 build-optimizerのバージョンを上げることでも解消できました。 こちらの方が、より良い解消方法かなと思いました。
npm install @angular-devkit/build-optimizer@0.6.8 npm install @ionic/app-scripts@3.1.11 ← こちらも念のため、再実行しました。
はじめに見つけた解決方法
webpack.config.js というファイルを作成し、以下の記載を行う
var useDefaultConfig = require('@ionic/app-scripts/config/webpack.config.js'); module.exports = function () { let defaultConfig = useDefaultConfig; defaultConfig["prod"] = defaultConfig["dev"]; return defaultConfig; };
packages.json に、descriptionの上あたりに、configの設定を追加 「./webpack.config.js」のパスを合わせるようにする
"config": { "ionic_bundler": "webpack", "ionic_webpack": "./webpack.config.js" }, "description": "An Ionic project"