如何解决npm 发布失败,“路径”参数必须是字符串类型收到未定义的“
我在私有 npm 存储库上发布了一个项目。
在 node v14.16.0 (npm v6.14.11)
下,命令 npm publish
运行良好,我的包已发布到我的私有存储库中。
我将 npm 升级到 7 以支持对等依赖项安装。
现在在 node v15.12.0 (npm v7.6.3)
下,命令 npm publish
失败并显示
“路径”参数必须是字符串类型。收到未定义
有什么想法吗?
更新
npm 7.6.3 与节点 14 效果相同:
“路径”参数必须是字符串类型
更新 2
带有标志 --verbose
的控制台输出
npm 动词 cli [ npm 动词 cli
'.nvm/versions/node/v15.12.0/bin/node',npm
动词cli
'.nvm/versions/node/v15.12.0/bin/npm',npm 动词
cli 'publish',npm 动词 cli '--verbose' npm 动词 cli ] npm 信息
使用 npm@7.6.3 npm info 使用 node@v15.12.0 npm 计时
config:load:defaults npm 时间 3ms 内完成
配置:加载:文件:.nvm/versions/node/v15.12.0/lib/node_modules/npm/npmrc
在 2ms npm 内完成计时 config:load:builtin 在 2ms npm 内完成
定时 config:load:cli 在 2ms 内完成 npm 定时 config:load:env
0ms npm 计时完成
配置:加载:文件:我的项目/.npmrc
4ms npm 时间完成 config:load:project 5ms npm 完成
定时 config:load:file:.npmrc 在 4ms 内完成
npm 计时 config:load:user 在 4ms 内完成 npm 计时
配置:加载:文件:.nvm/versions/node/v15.12.0/etc/npmrc
1ms npm 内完成计时 config:load:global 1ms npm 内完成
计时 config:load:cafile 0ms npm 计时完成
config:load:validate 在 0ms npm 计时完成
config:load:setUserAgent 在 1ms npm 计时完成
config:load:setEnvs 在 0ms 内完成 npm 计时 config:load Completed
在 18ms npm 动词 npm-session 83e5ee6d9b1b9659 npm 计时 npm:load
在 82ms 内完成 npm 动词 publish [ '.' ] npm 计时命令:发布
在 25ms 内完成 npm 动词堆栈 TypeError [ERR_INVALID_ARG_TYPE]:
“路径”参数必须是字符串类型。收到未定义的 npm 动词
堆栈在新的 NodeError (node:internal/errors:329:5) npm 动词堆栈
在 validateString (node:internal/validators:129:11) npm 动词堆栈
at join (node:path:1081:7) npm 动词 stack at flatten
(.nvm/versions/node/v15.12.0/lib/node_modules/npm/lib/utils/flat-options.js:50:10)
Publish.publishConfigToOpts 中的 npm 动词堆栈
(.nvm/versions/node/v15.12.0/lib/node_modules/npm/lib/publish.js:140:12)
Publish.publish 上的 npm 动词堆栈
(.nvm/versions/node/v15.12.0/lib/node_modules/npm/lib/publish.js:58:32)
解决方法
我发现了问题 here
解决方法是将 cache
属性添加到 publishConfig
package.json
部分
"publishConfig": {
"cache": "cache/.npm","registry": "https://mydomain/myrepo"
}
更新
该问题已在 npm 7.7.0 中修复
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。