TypeScript模块依赖项未将源代码暴露给依赖项

时间:2019-08-14 03:03:30

标签: typescript

我觉得这必须解决,但是对于我一生来说,我找不到获胜的SO职位。预先感谢您的指示!

我有一个TypeScript模块(我们将其称为my-library),该模块可用作其他库。我希望其他模块能够执行以下操作:

import { client, Payload } from 'my-library'
const payload: Payload = { x: 'y' }
client.send(payload)

my-library模块中,我得到了一个包含以下内容的顶级文件:

export { Payload } from './types/'
export { client } from './client'

我正在使用rollup.js输出可以以各种方式使用的代码。这是package.json配置,指向输出文件:

  "browser": "dist/index.js",
  "main": "lib/index.js",
  "module": "lib/index.es6.js",
  "types": "lib/types/index.d.ts",

但是,当我尝试导入从属存储库时:

import { client, Payload } from 'my-library'

...我收到如下错误:

Module '"../../../../../Users/my-user/dev/dependent-module/node_modules/my-library/lib/types"' has no exported member 'client'. Did you mean 'Client'?ts(2724)

请注意,该路径以/lib/types结尾,就好像该依赖项仅确认package.json的types参数一样。

似乎我的家属仅从my-library导入类型,但忽略了我想导入的实际源。谁能告诉我如何让我的家属导入源代码以及my-library的类型?

1 个答案:

答案 0 :(得分:0)

我找到了一个可行的解决方案,但不是最漂亮的:

import { Payload } from 'my-library'
import { client } from 'my-library/lib/client'
const payload: Payload = { x: 'y' }
client.send(payload)

我已经将client的导入分为另一行,并根据client的定义将其显式挖掘到模块目录中。这样可以构建,但是我希望没有必要。

如果有人有一个更好的主意,我会很高兴。