MarkCompactCollector: продвижение молодого объекта не удалось, Выделение не удалось

#javascript #node.js #vue.js #npm

#javascript #node.js #vue.js #npm

Вопрос:

Я клонировал репозиторий git, содержащий проект Vue, локально используя git clone . Затем я побежал npm install устанавливать зависимости и получил node_modules папку.

При запуске npm run serve я получаю следующую ошибку:

 [11920:03BEA178]   321556 ms: Scavenge (reduce) 429.1 (464.7) -> 429.1 (464.7) MB, 37.7 / 17.8 ms  (average mu = 0.980, current mu = 0.932) allocation failure
[11920:03BEA178]   321643 ms: Scavenge (reduce) 429.7 (465.2) -> 429.7 (465.2) MB, 61.2 / 0.9 ms  (average mu = 0.980, current mu = 0.932) allocation failure
[11920:03BEA178]   321765 ms: Scavenge (reduce) 432.2 (467.3) -> 432.2 (467.3) MB, 22.1 / 0.0 ms  (average mu = 0.980, current mu = 0.932) allocation failure


<--- JS stacktrace --->

FATAL ERROR: MarkCompactCollector: young object promotion failed Allocation failed - JavaScript heap out of memory
npm ERR! code ELIFECYCLE
npm ERR! errno 134
npm ERR! vue-argon-dashboard-pro@1.1.0 serve: `vue-cli-service serve --open`
npm ERR! Exit status 134
npm ERR!
npm ERR! Failed at the vue-argon-dashboard-pro@1.1.0 serve script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     C:UserssagarAppDataRoamingnpm-cache_logs2020-12-10T09_32_00_595Z-debug.log
 

Кроме того, размер моей node_modules папки составляет около 8 ГБ. Я запускаю это на кабриолете с 2 ГБ оперативной памяти.

Ответ №1:

Мне удалось обойти эту ошибку, отключив минимизацию для TerserPlugin следующим образом webpack.config.js :

 const TerserPlugin = require('terser-webpack-plugin');
module.exports = {
optimization: {
    minimize: false,
    minimizer: [new TerserPlugin()],
  },
};
 

Это может сработать не для всех, так как, на мой взгляд, эта ошибка возникает, когда оперативной памяти недостаточно. Мне не нужно было устанавливать minimize false значение, когда я запускал приложение на ноутбуке с 4 ГБ оперативной памяти и гораздо большим объемом жесткого диска. Вы можете установить minimize значение false на стадии разработки и вернуть его обратно true , когда приложение будет готово к производству.