#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
, когда приложение будет готово к производству.