Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

预构建无法处理一些 ts 的 type 引用 #4651

Closed
7 tasks done
huchangfa123 opened this issue Aug 19, 2021 · 5 comments
Closed
7 tasks done

预构建无法处理一些 ts 的 type 引用 #4651

huchangfa123 opened this issue Aug 19, 2021 · 5 comments

Comments

@huchangfa123
Copy link

Describe the bug

间接引用一些 npm 包,如果包里有一些无效的 ts type 引用,预构建会失败。
image

Reproduction

image
image

b 这个包提供 function a,同时在 a.js 会引用 b.d.ts 里面的一个 interface test 。b.js 里面没有 test 相关变量。

此时直接引用 b/es/a/a.js 的方法,预构建也不会出问题。但是如果存在一个包 a,
image
image
image
对 b 的 a.js 进行了引用,我们再直接调用 a 的话,
image

预构建就会失败报 type 没有 export 的 error。
感觉像是 esbuild 依赖判断处理有问题。

System Info

System:
    OS: macOS 10.15.7
    CPU: (12) x64 Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz
    Memory: 50.30 MB / 32.00 GB
    Shell: 5.7.1
  Binaries:
    Node: 14.17.0
    Yarn: 1.22.10
    npm: 6.14.13
  Browsers:
    Chrome: 92.0.4515.159
  npmPackages:
    vite: ^2.4.3 => 2.4.3

Used Package Manager

yarn

Logs

No response

Validations

@hyf0
Copy link
Contributor

hyf0 commented Aug 19, 2021

为什么要在 .js 文件里去 import 一个类型,而不是用 jsdoc ?


edit: 这个看起来像是一个故意构建出来导致错误的例子,有什么真实的例子会遇到这种场景吗?

@huchangfa123
Copy link
Author

为什么要在 .js 文件里去 import 一个类型,而不是用 jsdoc ?

edit: 这个看起来像是一个故意构建出来导致错误的例子,有什么真实的例子会遇到这种场景吗?

嗯嗯。内部包存在这种情况,就有的包构建没做好处理,原 ts 会 import 一个 type 来使用,ts 编译构建完出来的 js 就变成对 type 的空引用了。然后间接调用这个包的时候,预构建就会失败。

@hyf0
Copy link
Contributor

hyf0 commented Aug 19, 2021

我理解调用 tsc 或者 babel +typescrip-preset 编译后应该不会出现这种情况。

@haoqunjiang
Copy link
Member

请确认一下是否在 tsconfig 中设置了 importsNotUsedAsValues 选项
如果是,可能和这个 issue 是一个原因:#4581

@haoqunjiang
Copy link
Member

Closing due to lack of response or reproduction.

@github-actions github-actions bot locked and limited conversation to collaborators Sep 9, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

3 participants