尝试将 css 模块与 react 和 snowpack 一起使用时出现运行时错误

Posted

技术标签:

【中文标题】尝试将 css 模块与 react 和 snowpack 一起使用时出现运行时错误【英文标题】:Runtime error when trying to use css modules with react and snowpack 【发布时间】:2021-02-28 05:31:45 【问题描述】:

我在尝试使用 react 和 snowpack 设置 css 模块时遇到问题。以下是重现问题的方法:

"snowpack": "^2.17.0",

"@snowpack/plugin-sass": "^1.1.1",

使用 npx 设置新应用

npx create-snowpack-app snowpack --template @snowpack/app-template-react-typescript

npm install @snowpack/plugin-sass --save-dev

添加 sass 文件 app.sass

.test
  width: 30px
  height: 30px
  background: red

App.tsx

import styles from './app.sass'

<div className=styles.test/>

雪包devOptions

port: 8005,
open: 'none',
bundle: false,
out: 'dist'

雪包plugins

'@snowpack/plugin-react-refresh',
'@snowpack/plugin-dotenv',
'@snowpack/plugin-typescript',
'@snowpack/plugin-webpack',
'@snowpack/plugin-sass',

运行雪包开发

npm start => snowpack dev

错误

SyntaxError: The requested module './app.css.proxy.js' does not provide an export named 'default'

【问题讨论】:

【参考方案1】:

解决方法是将app.sass重命名为app.module.sass

Snowpack 支持使用 [name].module.css 命名约定的 CSS 模块。 CSS 模块的工作方式与普通 CSS 导入类似,但具有特殊的默认样式导出,可将您的原始类名映射到唯一标识符。

https://www.snowpack.dev/#import-css-modules

【讨论】:

以上是关于尝试将 css 模块与 react 和 snowpack 一起使用时出现运行时错误的主要内容,如果未能解决你的问题,请参考以下文章

带有 CSS 模块和更少的 Storybook UI

将全局 CSS 文件与 CSS 模块一起使用

Create-react-app + TypeScript + CSS 模块:自动生成类型定义而不从 CRA 中弹出

在 React 应用程序中使用启用 CSS 模块的 PrimeReact 主题

将 sass/css 模块添加到 typescript react app

CSS 模块和 CSS 关键帧动画