umijs / umi

A framework in react community ✨
https://umijs.org
MIT License
15.32k stars 2.65k forks source link

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

Open PhilipDing opened 3 weeks ago

PhilipDing commented 3 weeks ago

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 commented 2 weeks ago

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

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

xiaohuoni commented 2 weeks ago

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

xierenyuan commented 2 weeks ago

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

PeachScript commented 2 weeks ago

Umi 周会讨论:

PhilipDing commented 2 weeks ago

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

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