You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Node.js v18.16.0搭配高版本NPM在AIX7.2下执行npm stop报错求助

AIX 7.2下Node.js 18.16.0配合高版本NPM执行npm stop报错的解决思路

问题现象

  • 在AIX 7.2系统搭配Node.js v18.16.0时,执行npm stop命令触发报错:node --expose_gc ./lib/stop.js: --: not found
  • 该问题仅出现在NPM v8.17.0及更高版本(包括v9.5.1),同一环境下npm start可正常运行
  • 降级NPM至v8.11.0或v8.16及以下版本时,npm stop可恢复正常执行

问题原因

这是高版本NPM在AIX系统下的兼容性问题:NPM 8.17.0之后调整了脚本执行的shell解析逻辑,而AIX默认的ksh shell对--expose_gc这类参数的解析方式和NPM的预期不一致,导致参数识别失败。

解决方案

1. 保持NPM版本降级(已验证有效)

继续使用NPM v8.16.0及以下稳定版本,执行命令锁定版本:

npm install -g npm@8.16.0

2. 修改package.json中的stop脚本

调整stop脚本的参数传递方式,避免shell解析异常:

  • 方式一:指定bash执行脚本(需确保系统已安装bash)
    "scripts": {
      "stop": "bash -c 'node --expose_gc ./lib/stop.js'"
    }
    
  • 方式二:用引号包裹参数,强制shell正确识别
    "scripts": {
      "stop": "node \"--expose_gc\" ./lib/stop.js"
    }
    

3. 临时切换shell执行npm stop

如果不想修改脚本或降级NPM,可临时用bash执行命令:

bash -c "npm stop"

内容的提问来源于stack exchange,提问作者Dheeraj

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 16:43:16