Skip to content
New issue

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

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

Already on GitHub? # to your account

[Bug] umi4.0 从第三方包引入了一个不存在的方法,仍然可以编译成功,只在运行时报错 #12689

Open
PhilipDing opened this issue Sep 9, 2024 · 5 comments
Labels

Comments

@PhilipDing
Copy link

What happens?

umi4.0 从第三方包引入了一个不存在的方法,仍然可以编译成功,只在运行时报错

Mini Showcase Repository(REQUIRED)

按照下述步骤即可复现该问题,期望是在编译时也能暴露出该问题,而不是仅在运行时报错。

How To Reproduce

  1. 创建项目,使用文档中的步骤即可。 pnpm dlx create-umi@latest

  2. 安装 lodash

    pnpm install lodash
    pnpm install @types/lodash -D
    
  3. 在项目的 Table/index.tsx 中引入第三方包中不存在的方法,并在组件中使用该方法。
    image

  4. 在项目根目录执行 pnpm run build

能够正常编译
image

image

Context

@umijs/max: 4.3.19
Platform: Mac M1 Pro

@xiaohuoni
Copy link
Member

确实存在这个问题,不用引入第三方包,随便 import 一个不存在的方法,都可以通过构建,印象中是会报错的。webpack 和 mako 都能通过构建,到运行时才报错。

我印象中的报错,如下:
image

@xiaohuoni xiaohuoni added the bug label Sep 18, 2024
@xiaohuoni
Copy link
Member

可以先试用这个配置 srcTranspiler:'swc', 来暴露错误

@xierenyuan
Copy link
Member

webpack 可以通过配置 https://webpack.js.org/configuration/module/#moduleparserjavascriptexportspresence exportspresence 来解决

@PeachScript
Copy link
Member

Umi 周会讨论:

  • 先看 Umi 3 为什么会报错,理论上 Webpadck 4 & 5 的默认值都是不报错,v4 docv5 doc
  • 如果 Umi 3 的确默认报错,考虑到 Umi 4 存量项目,提供一个配置项开启报错(简化 chainWebpack 的配置成本)

@PhilipDing
Copy link
Author

webpack 可以通过配置 https://webpack.js.org/configuration/module/#moduleparserjavascriptexportspresence exportspresence 来解决

请教下,这个要如何配置呢?

# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
Projects
None yet
Development

No branches or pull requests

4 participants