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

发布npm包时反复出现ERR_INVALID_ARG_TYPE错误(path参数接收undefined)的原因咨询

解决npm publish时的ERR_INVALID_ARG_TYPE错误

从你提供的错误日志和调用栈来看,这个问题的根源是npm在处理发布配置(publishConfig)时,尝试拼接路径但接收到了undefined值,导致Node.js的path.join方法报错。下面是具体的分析和解决方案:

错误原因分析

从日志的调用栈可以定位到问题环节:

23 verbose stack at join (node:path:1081:7)
23 verbose stack at flatten (/usr/lib/node_modules/npm/lib/utils/flat-options.js:50:10)
23 verbose stack at Publish.publishConfigToOpts (/usr/lib/node_modules/npm/lib/publish.js:140:12)

这说明npm在将package.json中的publishConfig转换为发布选项时,某个涉及路径的配置项是undefined,触发了类型校验错误。注意这个问题和你代码里的路径逻辑无关,而是npm的发布配置环节出了问题。

解决方案

1. 检查并修复package.json的publishConfig

打开项目根目录的package.json,找到publishConfig字段(如果存在的话):

  • 确保所有配置项的值都是有效的字符串,没有空值或undefined。比如配置publishConfig.directory时,要写明确的路径字符串,例:"directory": "./dist"
  • 如果不需要自定义发布规则,可以直接删除整个publishConfig节点,再尝试发布。

2. 升级/降级npm版本

你当前使用的npm 7.6.3是npm7系列的早期版本,存在一些已知的发布相关bug。建议升级到更稳定的版本:

npm install -g npm@latest

或者降级到npm7的稳定分支(比如7.24.x版本),再执行发布操作。

3. 检查项目和全局的.npmrc配置

查看项目根目录的.npmrc和用户目录的~/.npmrc,确认没有错误的发布配置项:

  • 排查是否有未定义的变量引用
  • 检查是否有拼写错误的配置字段,这些都可能导致npm读取到无效的路径值。

4. 尝试基础发布命令

先跳过自定义配置,执行最基础的发布命令测试:

npm publish

如果能正常发布,说明问题确实出在你的自定义配置上,再针对性排查即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 10:59:10