【发布时间】:2023-01-23 06:47:24
【问题描述】:
您如何设置 Storybook 以便它解析 Tailwindcss 样式并解析绝对路径?
注意:根据this,这是允许的自我记录问题/答案。这花了一段时间才弄明白,我相信很多其他人也会遇到这个问题。
【问题讨论】:
标签: reactjs typescript tailwind-css storybook
您如何设置 Storybook 以便它解析 Tailwindcss 样式并解析绝对路径?
注意:根据this,这是允许的自我记录问题/答案。这花了一段时间才弄明白,我相信很多其他人也会遇到这个问题。
【问题讨论】:
标签: reactjs typescript tailwind-css storybook
为了解析 Storybook 中的路径,我们将使用 tsconfig 作为源。 我们假设你已经安装了一个带有 typescript 模板的 ReactJS 项目。
在tsconfig.js 中的“路径”下添加您的绝对路径。
// tsconfig.json
{
"compilerOptions": {
// ...
"baseUrl": "src",
"paths": {
"#assets/*": ["./assets/*"],
"#components/*": ["./components/*"],
// etc.
}
}
"include": ["src"]
}
从 npm 安装 tsconfig-paths-webpack-plugin。在撰写本文时每周有数百万次下载。
$ npm install -D tsconfig-paths-webpack-plugin
// or
$ yarn add -D tsconfig-paths-webpack-plugin
在 .storybook/main.js 下,通过将以下内容添加到您的 module.exports 来扩展 tsconfig 路径解析。
// .storybook/main.js
const TsconfigPathsPlugin = require('tsconfig-paths-webpack-plugin');
module.exports = {
// Add the following block of code in addition to what's existing
"webpackFinal": async (config) => {
config.resolve.plugins = [
...(config.resolve.plugins || []),
new TsconfigPathsPlugin({
extensions: config.resolve.extensions,
}),
];
return config;
},
};
在.storybook/preview.js 文件的顶部添加以下两行代码。
// .storybook/preview.js
import '!style-loader!css-loader!postcss-loader!tailwindcss/tailwind.css';
import 'tailwindcss/tailwind.css';
你的 tailwindcss 现在应该解析了。
对于 Tailwind v3+,请确保您的 tailwind.config.js 没有清除选项并且没有明确声明 JIT。我的看起来像这样:
// tailwind.config.js
module.exports = {
content: [
"./src/**/*.{js,jsx,ts,tsx}"
],
theme: {
extend: {},
},
plugins: [],
};
【讨论】:
extends: { colors: primary: { DEFAULT: '#438D42' } }
extend:{} no s,而不是 extends:{}