【发布时间】:2021-11-29 10:38:04
【问题描述】:
我有一个从 React 应用程序使用的 Typescript 库。我想导入带有子路径的 TS 库内容,例如
import {base} from "my-lib"
import {foo} from "my-lib/path1"
import {bar} from "my-lib/path2"
我遇到了Github issue,它指出 Typescript 尚不支持(exports in package.json)。我正在使用 Typescript 4.3。
在同一线程中发布了一种解决方法 - Github repo typescript-subpath-exports-workaround。它使用exports 和typeVersions
{
"main": "dist/index.js",
"types": "dist-types/index.d.ts",
"exports": {
".": "./dist/index.js",
"./exported": "./dist/exported.js"
},
"typesVersions": {
"*": {
"exported": ["dist-types/exported"]
}
}
}
我创建了一个新的 react 应用程序(通过 npx create-react-app 命令)并尝试从 typescript-subpath-exports-workaround 导入 hello 并且效果很好。但无法导入 `typescript-subpath-exports-workaround/exported
import {hello} from "typescript-subpath-exports-workaround" //works fine
import {foo} from "typescript-subpath-exports-workaround/exported" //gives "Module not found" error
完整的错误如下:
./src/App.js
Module not found: Can't resolve 'typescript-subpath-exports-workaround/exported' in '/Users/...../my-react-app/src'
代码沙盒代码 - https://codesandbox.io/s/create-react-app-forked-5yxd8
更新:导入时使用的子路径和文件夹结构不同。在上面的示例中,不会有一个名为 path1 或 path2 的文件夹。
【问题讨论】:
-
什么!?打字稿不能这样做吗?真可惜。
标签: reactjs typescript