npm 发布失败,“路径”参数必须是字符串类型。收到未定义”

Tro*_*ers 5 node.js npm npm-publish

我有一个在私有 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
cafile 0ms 内完成 npm 计时 config:load:validate 0ms 内完成 npm 计时 config:load:setUserAgent 1ms 内完成 npm 计时 config:load:setEnvs 0ms 内完成 npm 计时 config:load 18ms 内完成 npm 动词 npm-session 83e5ee6d9b1b9659 npm:load 在 82 毫秒内完成 npm 动词发布 [ '.' ] npm 计时命令:发布在 25 毫秒内完成 npm 动词堆栈类型错误 [ERR_INVALID_ARG_TYPE]:“路径”参数必须是字符串类型。在新的 NodeError (node:internal/errors:329:5) npm verb stack at validateString (node:internal/validators:129:11) npm verb stack 处收到未定义的 npm 动词堆栈 负载在 18 毫秒内完成 npm 动词 npm-session 83e5ee6d9b1b9659 npm 计时 npm:load 在 82 毫秒内完成 npm 动词发布 ['.' ] npm 计时命令:发布在 25 毫秒内完成 npm 动词堆栈类型错误 [ERR_INVALID_ARG_TYPE]:“路径”参数必须是字符串类型。在新的 NodeError (node:internal/errors:329:5) npm verb stack at validateString (node:internal/validators:129:11) npm verb stack 处收到未定义的 npm 动词堆栈 负载在 18 毫秒内完成 npm 动词 npm-session 83e5ee6d9b1b9659 npm 计时 npm:load 在 82 毫秒内完成 npm 动词发布 ['.' ] npm 计时命令:发布在 25 毫秒内完成 npm 动词堆栈类型错误 [ERR_INVALID_ARG_TYPE]:“路径”参数必须是字符串类型。在新的 NodeError (node:internal/errors:329:5) npm verb stack at validateString (node:internal/validators:129:11) npm verb stack 处收到未定义的 npm 动词堆栈
at join (node:path:1081:7) npm verb stack at flatten (.nvm/versions/node/v15.12.0/lib/node_modules/npm/lib/utils/flat-options.js:50:10) npm verb Publish.publishConfigToOpts 上的堆栈 (.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)

Tro*_*ers 10

我在这里找到了问题

解决方法是一个补充cache性质的publishConfigpackage.json

"publishConfig": {
    "cache": "cache/.npm",
    "registry": "https://mydomain/myrepo"
}
Run Code Online (Sandbox Code Playgroud)

更新

该问题已在 npm 7.7.0 中修复