【问题标题】:npm - How to set max-old-space-size in npmnpm - 如何在 npm 中设置 max-old-space-size
【发布时间】:2019-03-06 10:46:06
【问题描述】:

我在构建 Angular 项目时遇到以下错误,

CALL_AND_RETRY_LAST 分配失败 - JavaScript 堆内存不足

我在某处看到在 npm 中配置 max-old-space-size 可以解决问题。但我不知道如何设置它。我使用的是 Windows 操作系统,并且在 nodejs 安装文件夹(C:\Program Files\nodejs)中有两个 npm 文件,npm 和 npm.cmd。 npm.cmd 文件中的第一行是“由 npm 创建,请不要手动编辑”。所以我不应该编辑这个文件,我必须在 npm 文件中配置 max-old-space-size。但我不需要在这个文件中配置它。我的 npm 文件如下所示,

#!/bin/sh
(set -o igncr) 2>/dev/null && set -o igncr; # cygwin encoding fix

basedir=`dirname "$0"`

case `uname` in
    *CYGWIN*) basedir=`cygpath -w "$basedir"`;;
esac

NODE_EXE="$basedir/node.exe"
if ! [ -x "$NODE_EXE" ]; then
  NODE_EXE=node
fi

NPM_CLI_JS="$basedir/node_modules/npm/bin/npm-cli.js"

case `uname` in
  *MINGW*)
    NPM_PREFIX=`"$NODE_EXE" "$NPM_CLI_JS" prefix -g`
    NPM_PREFIX_NPM_CLI_JS="$NPM_PREFIX/node_modules/npm/bin/npm-cli.js"
    if [ -f "$NPM_PREFIX_NPM_CLI_JS" ]; then
      NPM_CLI_JS="$NPM_PREFIX_NPM_CLI_JS"
    fi
    ;;
  *CYGWIN*)
    NPM_PREFIX=`"$NODE_EXE" "$NPM_CLI_JS" prefix -g`
    NPM_PREFIX_NPM_CLI_JS="$NPM_PREFIX/node_modules/npm/bin/npm-cli.js"
    if [ -f "$NPM_PREFIX_NPM_CLI_JS" ]; then
      NPM_CLI_JS="$NPM_PREFIX_NPM_CLI_JS"
    fi
    ;;
esac

"$NODE_EXE" "$NPM_CLI_JS" "$@"

【问题讨论】:

标签: node.js angular npm


【解决方案1】:

也许你可以试试这个,

> npm run start --node-flags --max-old-space-size=512 --no-warnings

> node --max-old-space-size=250 `which npm` some_npm_command

【讨论】:

  • 你能详细说明一下吗?我必须在哪里运行这个命令?
  • 这适用于临时解决方案,但必须有一种方法可以全局设置它,这样我们就不必每次都给出最大旧尺寸
  • 这也可以设置到你的windows配置文件或linux上的.bashrc作为别名alias npm='node --max_old_space_size=8000 /usr/bin/npm'
【解决方案2】:

我遇到了类似的问题,但我不得不增加 docker 内存大小。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-11-20
    • 1970-01-01
    • 2018-11-10
    • 1970-01-01
    • 2019-07-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多