无法在 Rails 7 中使用 tailwind 添加 ant design 样式表

Unable to add ant design stylesheets with tailwind in Rails 7

我使用 rails new demo -j esbuild --css tailwind 创建了一个 Rails 7 应用程序。 我正在为组件使用 antd 包,并希望将 ant design 样式表与 tailwind 样式表一起使用。

Tailwind has a way 将外部样式表添加到其默认样式。我使用它并将 application.tailwind.css 文件设置为:

@import "~antd/dist/antd.css";

@import "tailwindcss/base";
@import "tailwindcss/components";
@import "tailwindcss/utilities";

现在,当我 运行 ./bin/dev 时,antd 样式既未应用,生成的 app/assets/builds/application.css 文件中也不存在 类 样式。

看起来 tailwind 覆盖了 ant 设计样式。

如果我保留 application.tailwind.css 并添加

import 'antd/dist/antd.css';

到我的 index.js 根文件,只有这样 antd 样式才会被应用并出现在生成的 app/assets/builds/application.css 中。但是随后删除了 tailwindcss 类。

如何在生成的 app/assets/builds/application.css 中同时拥有 ant 设计风格和 tailwind 风格?

这就是我最终将 Rails 7 中自己的样式表与 esbuild 和 TailwindCSS 链接起来的方式。

目前,如果您 运行 rails new demo --css tailwind Rails 将使用 tailwindcss-rails gem

但是,如果您像在创建新应用程序时使用 esbuild 那样传递 javascript 选项,它将改用 cssbundling-rails gemrails new demo -j esbuild --css tailwind.

css捆绑的文档-rails gem 说

If you want to use @import statements as part of your Tailwind application.js file, you need to configure Tailwind to use postcss and then postcss-import. But you should also consider simply referring to your other CSS files directly, instead of bundling them all into one big file. It's better for caching, and it's simpler to setup. You can refer to other CSS files by expanding the stylesheet_link_tag in application.html.erb like so: <%= stylesheet_link_tag "application", "other", "styles", "data-turbo-track": "reload" %>.

https://github.com/rails/cssbundling-rails#how-do-i-import-relative-css-files-with-tailwind

我在 app/assets/stylesheets/users.css

下创建了一个名为 users 的新 css 文件

application.html.erb 我在 stylesheet_link_tag.

application 样式表之后添加了新的 users 样式表
<%= stylesheet_link_tag "application", "users", "data-turbo-track": "reload" %>

app/assets/config/manifest.js 图像和构建之后添加 //= link users.css