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”
コメントを書く