npx配置max-old-space-size的正确性验证及脚本优化咨询
问题解答
1. 关于npx --max-old-space-size=10240 ng build --prod的参数有效性
你当前的写法不生效。因为--max-old-space-size是Node.js的运行时参数,不属于npx自身的命令参数,直接加在npx后不会被传递给执行ng的Node进程。
正确的配置方式有两种:
- 方式一:通过
NODE_OPTIONS环境变量传递参数NODE_OPTIONS="--max-old-space-size=10240" npx ng build --prod - 方式二:使用npx专属的
--node-options参数(专门用于传递Node运行时选项)npx --node-options="--max-old-space-size=10240" ng build --prod
验证参数是否生效的方法
执行以下命令,打印当前Node进程的堆内存限制(单位为MB),如果输出接近10240则说明参数已生效:
NODE_OPTIONS="--max-old-space-size=10240" npx node -e "console.log(v8.getHeapStatistics().heap_size_limit / (1024 * 1024))"
2. 减少脚本中重复的./node_modules的方法
有几种简洁实用的方案:
- 直接在npm脚本中写命令名:npm/yarn执行scripts内的命令时,会自动把项目根目录下的
node_modules/.bin加入环境变量PATH,无需写完整路径,直接用包的命令名即可。比如在package.json中可以这样配置:
执行时只需运行"scripts": { "build:prod": "ng build --prod" }npm run build:prod,npm会自动找到node_modules/.bin/ng执行。 - 用npx直接调用命令:npx会自动查找本地
node_modules中的可执行文件,无需手动写路径,比如npx ng build --prod。 - 定义复用脚本:如果多个命令都需要调用同一个工具,可以在scripts里定义基础脚本,简化重复调用:
"scripts": { "ng": "ng", "build:prod": "npm run ng -- build --prod", "test": "npm run ng -- test" }
内容的提问来源于stack exchange,提问作者ezcoth
相关产品推荐
相关产品推荐

