npm 无法导入从GitHub分支安装的TypeScript库

ss2ws0br  于 2023-10-19  发布在  Git
关注(0)|答案(1)|浏览(118)

我正在尝试使用probot库来构建一个GitHub应用程序。但是,根据this issueprobot不支持ESM模块,我需要ESM模块才能使我的应用程序正常运行。
幸运的是,this fork为库添加了ESM支持。但是,在通过运行以下行安装库之后:

npm i github:pixelass/probot#feat/esm-it-plz

安装没有问题,我无法导入库。当我添加这一行时:

import { Probot } from "probot"

我得到以下错误:

Cannot find module 'probot' or its corresponding type declarations.ts(2307)

我甚至使用了fork的made my own fork,并按照How to have npm install a typescript dependency from a GitHub url?的建议,将以下内容添加到模块的package.json中:

"postinstall": "tsc --outDir ./lib"

但即使我安装了自己的fork,我也会得到一个不同的错误:

Module '"probot"' has no exported member 'Probot'.ts(2305)

有人知道如何解决这个问题吗?

ql3eal8s

ql3eal8s1#

让我们把问题分成两部分。

  • 在ts esm项目中使用probot
  • 将类型添加到probot

要让您立即使用probot,只需添加someName.d.ts文件,内容如下:

declare module 'probot';

现在让我们考虑正确输入probot。上面将类型probot作为任何。派生esm包来添加类型是可能的,但一般来说,我不认为这是最好的方法。JS包更新,但由于你将使用一个fork的fork,你将被困在某个版本上。如果你决定更正确地输入probot,我建议在d.ts文件中这样做:

declare module 'probot' {
    export type SomeExport = string;
}

这样你就有了正确的输入,但仍然可以获得probot的任何更新。

相关问题