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

Node v16.15.1使用parallelshell运行npm脚本报ERR_INVALID_ARG_TYPE错误

报错原因

parallelshell@3.0.2 已经停止维护多年,和Node 16+版本存在API兼容问题。该版本的parallelshell内部调用子进程spawn方法时,传入的配置项里cwd直接赋值为process.cwd(函数引用),但Node 14及以上版本要求spawn配置的cwd属性必须是字符串、Buffer或URL类型的实际路径值,不接受函数类型传入,因此抛出ERR_INVALID_ARG_TYPE类型错误。

修复方案
  • 方案一:替换为维护状态良好的兼容工具(推荐)
    目前社区主流的npm脚本并行执行工具是npm-run-all,对高版本Node兼容性完善,操作步骤如下:
    1. 卸载原有不兼容的parallelshell依赖,执行命令:npm uninstall parallelshell
    2. 安装npm-run-all到开发依赖:npm install npm-run-all --save-dev
    3. 修改package.json中scripts字段下的watch:all配置,替换原parallelshell命令:
      "watch:all": "npm-run-all --parallel watch:scss lite"
      
    4. 重新执行npm start即可正常并行启动scss监听和本地静态服务。
  • 方案二:本地临时修复依赖兼容问题
    如果不想更换依赖,可以手动修改本地依赖文件做兼容:
    打开项目路径下node_modules/parallelshell/index.js文件,定位到104行左右的spawn调用代码,将传入配置里的cwd: process.cwd修改为cwd: process.cwd()(补充括号执行函数,返回实际路径字符串),保存文件后重新执行npm start即可正常运行。注意该修改会在每次重新执行npm install安装依赖后失效,需要重复修改。
  • 方案三:降级Node版本(不推荐)
    将本地Node版本降级到v12及更早版本,旧版本Node未对spawn的cwd参数做严格类型校验,可以正常运行旧版parallelshell,但旧版本Node存在已知安全漏洞,且无法兼容部分新的前端生态工具,非特殊情况不建议使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 13:45:35