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

[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 来解决

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

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

No branches or pull requests

4 participants