【问题标题】:Error with publishing package using npm-registry-client使用 npm-registry-client 发布包时出错
【发布时间】:2021-10-02 15:41:17
【问题描述】:

在尝试将包从一个提要复制到另一个提要时,我正在尝试使用 npm-registry-client - https://www.npmjs.com/package/npm-registry-client

但是,我在尝试发布到目标注册表时遇到错误。

TypeError [ERR_INVALID_ARG_TYPE]:“data”参数必须是字符串类型或 Buffer、TypedArray 或 DataView 的实例。在 Hash.update (internal/crypto/hash.js:82:11) 处收到 Array 的实例

在发布之前,我使用相同的模块获取包。获取成功并返回 200。然后我将解析的数据传递给发布函数。

            new Promise((resolve, reject) => {
                client.fetch(dist.tarball, from.params,
                    function process(error, data, raw, res) {
                        if (error) {
                            reject(error);
                        }
                        resolve(data);
                    }
                );
            })
            .then(tarball => {
                new Promise((resolve, reject) => {
                    publishParams = {
                        metadata: newMetadata,
                        access: "public",
                        body: tarball,
                        auth: to.params.auth
                    }
                    npm.publish(`${to.feedUrl}/${moduleName}`, publishParams, process(error, data, raw, res) {});

.......

【问题讨论】:

    标签: node.js npm


    【解决方案1】:

    显然,我得到了 302 并使用重定向 tarball 来获取 tarball。

    1. 我更改为 node-fetch 直到获取 tarball(以最小化回调并仅使用 async/await)。
    2. 我仍然使用 npm-registry-client 进行实际发布

    【讨论】:

      猜你喜欢
      • 2021-11-07
      • 2015-09-21
      • 1970-01-01
      • 2021-12-24
      • 1970-01-01
      • 2021-12-23
      • 1970-01-01
      • 2021-11-02
      • 2022-08-24
      相关资源
      最近更新 更多