You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Next.js项目npm run build编译失败,CSS伪类/伪元素报错求助

问题描述

我的项目托管在GitHub上,执行npm run dev能正常运行,但执行npm run build时出现编译失败错误,核心报错信息如下:

info  - Linting and checking validity of types
Failed to compile.

HookWebpackError: Expected a pseudo-class or pseudo-element.
-- inner error --
Error: Expected a pseudo-class or pseudo-element.
at ./static/css/c4db30214b074e73.css:645:3

最终提示Build failed because of webpack errors。

解决方案

这个错误是Next.js生产构建中负责压缩CSS的cssnano工具检测到CSS语法不规范导致的,核心问题是项目CSS代码里的伪类/伪元素语法存在错误。

1. 定位错误代码

  • 执行npm run build后,打开项目目录下的static/css/c4db30214b074e73.css文件,跳转到第645行,查看对应的CSS选择器。
  • 根据该选择器的样式内容,回到项目源码(CSS模块、全局CSS文件、组件内联样式等)中找到对应的代码片段。

2. 修复CSS语法错误

常见错误场景及修复方式:

  • 伪元素语法混用:伪元素(如before、after、first-letter)需用双冒号::,伪类(如hover、active、nth-child)需用单冒号:,不要混用。
  • 拼写错误:检查是否存在伪类/伪元素名称拼写错误(比如把:hover写成:hove)。
  • 无效语法:检查是否存在多余冒号(比如.class::后未跟伪元素名称)、嵌套规则错误(如CSS预处理器或CSS-in-JS中的嵌套写法错误)。

3. 临时绕过方案(不推荐,仅用于紧急排查)

若需临时完成构建,可在next.config.js中调整cssnano配置,关闭严格语法检查,但最终建议修复语法错误:

module.exports = {
  compiler: {
    cssMinimizerOptions: {
      preset: ['default', {
        normalizeWhitespace: true,
        discardUnused: false,
      }],
    },
  },
}

内容的提问来源于stack exchange,提问作者sadegh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 13:23:15