无法让 css 模块在 Typescript Storybook 项目中工作

Posted

技术标签:

【中文标题】无法让 css 模块在 Typescript Storybook 项目中工作【英文标题】:Can't get css modules to work within Typescript Storybook project 【发布时间】:2021-01-02 13:41:37 【问题描述】:

这是./storybook/main.js 的当前配置,我似乎无法让任何 css 模块在我的故事书组件中工作。这是一个 Typescript 项目,所以不完全确定我是否需要任何额外的东西才能使模块正常工作。

const path = require("path");
const tailwindcss = require("tailwindcss");
const autoprefixer = require("autoprefixer");

module.exports = 
    stories: ["../stories/**/**/*.stories.tsx"],
    addons: [
        "@builder.io/storybook",
        "@storybook/addon-knobs",
        "@storybook/addon-knobs/register",
    ],
    webpackFinal: async (config) => 
        config.module.rules.push(
            
                test: /\.(scss|sass|css)$/,
                use: [
                    
                        loader: "sass-loader",
                    ,
                    
                        loader: 'css-loader',
                        options: 
                            modules: true,
                        ,
                      ,
                    
                        loader: "postcss-loader",
                        options: 
                            ident: "postcss",
                            plugins: [tailwindcss, autoprefixer],
                        ,
                    ,
                ],
                include: path.resolve(__dirname, "../"),
            ,
            
                test: /\.(png|jpe?g|gif|jp2|webp)$/,
                use: [
                    
                        loader: "file-loader",
                        options: 
                            name: "assets/images/[name].[ext]",
                        ,
                    ,
                ],
            
        );
        return config;
    ,
;

MyComponent.jsx

import React from "react";
import styles from "./styles.css";

const MyComponent = () => 
  console.log(styles);
  return <h1>hi</h1>;
;

记录 styles 返回一个空对象。我在这里遗漏了什么吗?

【问题讨论】:

【参考方案1】:

看来我需要向故事书插件添加额外的加载器


  name: '@storybook/preset-scss',
  options: 
    cssLoaderOptions: 
      modules: true
    
  
,

【讨论】:

以上是关于无法让 css 模块在 Typescript Storybook 项目中工作的主要内容,如果未能解决你的问题,请参考以下文章

如何在 TypeScript 中为 css 模块设置汇总

在 typescript 中使用 css 模块时出错与 webpack 配置反应

在 ReactJS + Typescript 中加载 CSS 模块并重新连接反应

Webpack 和 TypeScript:无法解析 node.d.ts 中的模块“child_process”

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

Typescript 和 CSS 模块类型