蜂巢词元 蜂巢词元 · 蜂巢涌动旗下
EN
首页 / 博客 / 新增前端组件页面不显示?可能被 tree-shaking 当死代码摇掉了

新增前端组件页面不显示?可能被 tree-shaking 当死代码摇掉了

2026-09-21 · 蜂巢词元

构建成功,页面没变化

新写的卡片组件,逻辑没问题,类型检查过了,构建也成功了。部署完页面上根本没有这个模块。

控制台不报错,网络请求正常,刷新无效。

根因:定义了,但没人调用它

现代打包器默认开启 tree-shaking。一个组件如果只是定义了,却没有任何地方调用它,它就不在模块依赖图的可达路径上,会被当作死代码直接从产物里删掉。

最典型的写法:在主面板文件里加了函数定义,却忘了在 return 的 JSX 里把它挂上去。

排查:别信"构建成功",去看产物

构建成功只说明语法和类型没问题,不代表你的代码进了产物。部署前先 grep 一遍:

grep -rl "组件里的独有关键字" dist/assets/

如果搜不到,就说明它已经被摇掉了——这时再去查缓存、查部署、查 CDN,都是白费时间。

修复

在主组件的渲染树里真正调用一次:

export default function Dashboard() {
  return (
    <>
      <ExistingCard />
      <NewCard />
    </>
  );
}

顺带一个 JSX 注释的坑:注释 {/* ... */} 里面不能再出现 */,注释会被提前关闭,后面的内容变成代码,直接编译报错。这个报错信息还特别有误导性,我第一次看到愣是没往注释上想。

前端部署自检

前往控制台体验