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

Next.js导入bootstrap.scss报Global CSS cannot be imported错误求助

报错原因

Next.js 内置了全局样式导入限制:全局CSS、SCSS文件仅允许在项目的根入口文件中导入,若在普通组件、业务页面等非根入口文件中导入,就会触发该报错。另外如果项目未安装sass依赖,也会导致SCSS格式的全局样式识别异常触发报错。

解决方案
  • 第一步先安装sass依赖,Next.js处理SCSS需要该依赖包支持:
npm install sass
# 或者用yarn
yarn add sass
# 或者用pnpm
pnpm add sass
  • 第二步根据你使用的路由模式对应调整:

Pages Router(你的app.tsx存放在/pages目录下,为自定义App文件)

按默认规则/pages/_app.tsx是允许导入全局样式的,出现报错可以调整导入方式规避:

  1. 打开你项目中的/styles/globals.scss文件,在顶部添加导入bootstrap的语句,不需要写全node_modules路径,Next.js会自动解析:
@import "bootstrap/scss/bootstrap";
// 你自己的其余全局样式写在下方
  1. 修改/pages/_app.tsx的样式导入部分,删掉直接导入bootstrap的语句即可,修改后参考代码:
import type { AppProps } from "next/app";
import React from "react";

// 样式导入
import "tippy.js/dist/tippy.css";
import "tippy.js/animations/perspective-subtle.css";
import "tippy.js/themes/light.css";
import "../styles/globals.scss";
import "react-toastify/dist/ReactToastify.css";

// 组件逻辑保持不变
export default function App({ Component, pageProps }: AppProps) {
  return <Component {...pageProps} />
}

App Router(使用Next.js 13+的/app目录作为路由目录)

这种场景下全局样式仅允许导入到根布局文件/app/layout.tsx中,你需要把当前app.tsx里的所有全局样式导入语句,全部迁移到/app/layout.tsx的顶部即可。

  • 额外排查点:如果完成上述操作后仍有报错,检查项目中其他普通组件、页面文件是否存在全局样式导入语句,这类导入也会触发该报错,全部删除或迁移到根入口即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 08:57:03