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

Angular 15+Storybook 7.6中SCSS里Tailwind @config指令失效求助

解决Angular 15 + Storybook 7.6中Tailwind @config指令不生效的问题

核心原因

@config 是Tailwind CSS v3.3+新增的指令,Angular默认的SCSS编译链没集成Tailwind的PostCSS解析逻辑,导致该指令被直接忽略;同时Storybook的webpack配置可能未正确加载PostCSS插件,无法识别这个新指令。

解决方案步骤

1. 确认Tailwind CSS版本

先检查你当前的Tailwind版本是否达标:

npm list tailwindcss

如果版本低于v3.3,执行升级:

npm install tailwindcss@latest --save-dev

2. 配置项目根目录的PostCSS

在项目根目录新建postcss.config.js文件,内容如下:

module.exports = {
  plugins: {
    tailwindcss: {},
    autoprefixer: {},
  },
};

3. 修正@config的相对路径

@config的路径是相对于当前SCSS文件的,你需要对应调整。比如:

  • 如果你的main.scss在storybook/assets/目录下,而tailwind.config.js在项目根目录,第一行应改为:
@config "../../tailwind.config.js";

4. 调整Storybook的Webpack配置

在.storybook/main.js中添加webpack配置,确保PostCSS loader被加入SCSS处理链:

module.exports = {
  stories: ['../**/*.stories.@(js|ts)'],
  addons: ['@storybook/addon-essentials'],
  framework: {
    name: '@storybook/angular',
    options: {}
  },
  webpackFinal: async (config) => {
    // 找到SCSS规则并添加PostCSS loader
    const scssRule = config.module.rules.find(rule => rule.test.test('.scss'));
    if (scssRule) {
      scssRule.use.push({
        loader: 'postcss-loader',
        options: {
          postcssOptions: require('../postcss.config.js'),
        },
      });
    }
    return config;
  }
};

5. 验证配置是否生效

在tailwind.config.js里加个自定义测试配置,比如:

module.exports = {
  theme: {
    extend: {
      colors: {
        test: '#ff0000',
      },
    },
  },
};

然后在任意Story组件中使用text-test类,查看文字是否变成红色,以此确认@config是否生效。

6. 重启Storybook服务

执行以下命令重启服务,让所有配置生效:

ng run storybook:storybook

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 09:35:30