我正在尝试在全新的项目中使用Tailwind,每个实用程序都可以正常工作,但是@apply甚至无法编译。
这里是错误消息:
Syntax Error: SyntaxError friendly-errors 08:12:30
(5:5) `@apply` cannot be used with `.lg\:mt-0` because `.lg\:mt-0` either cannot be found, or its actual definition includes a pseudo-selector like :hover, :active, etc. If you're sure that `.lg\:mt-0` exists, make sure that any `@import` statements are being properly processed *before* Tailwind CSS sees your CSS, as `@apply` can only be used for classes in the same CSS tree.
3 | @import 'tailwindcss/components';
4 | .navbar-item-link {
> 5 | @apply text-xs mt-1 lg:mt-0 px-3 no-underline text-gray-600 rounded-full border-solid border border-gray-100 hover:border-blue-best-100;
| ^
6 | }
7 | /* purgecss end ignore */
我的tailwind.css文件:
/* purgecss start ignore */
@import 'tailwindcss/base';
@import 'tailwindcss/components';
.navbar-item-link {
@apply text-xs mt-1 lg:mt-0 px-3 no-underline text-gray-600 rounded-full border-solid border border-gray-100 hover:border-blue-best-100;
}
/* purgecss end ignore */
@import 'tailwindcss/utilities';
我已经安装了postcss cli并像这样使用postcss.config.js:
module.exports = {
plugins: [
require("postcss-import"),
require("tailwindcss"),
require("autoprefixer")
]
};
但是这些都不起作用。
您不能将伪类前缀与@apply方法一起使用
代替此
.navbar-item-link {
@apply text-xs mt-1 lg:mt-0 px-3 no-underline text-gray-600 rounded-full border-solid border border-gray-100 hover:border-blue-best-100;
}
您应该使用类似这样的内容:
// Normal State
.navbar-item-link {
@apply text-xs mt-1 px-3 no-underline text-gray-600 rounded-full border-solid border border-gray-100;
}
// Hover State
navbar-item-link:hover{
@apply border-blue-best-100;
}
// Large Screen
@screen lg {
.navbar-item-link{
@apply mt-0;
}
}
这里有更多信息
https://tailwindcss.com/docs/extracting-components/#extracting-css-components-with-apply
https://tailwindcss.com/docs/functions-and-directives/#screen