配置postcss.config.js(主要是tailwndcss)的规则到底是什么?



显示postcss.config.js必须如何配置的变体的数量非常令人困惑。有一些例子(比如tailwindcss文档中的例子)使用了这个:

// Example 1:
module.exports = {
plugins: {
tailwindcss: {},
autoprefixer: {},
},
}

则需要库:

// Example 2:
module.exports = {
plugins: {
require('tailwindcss'),
require('postcss-preset-env')({
stage: 0,
'nesting-rules': true
})
},
}

其他人在配置module.exports之前需要外部库:

// Example 3:
const tailwindcss = require('tailwindcss');
const postcssPresetEnv = require('postcss-preset-env');

module.exports = {
plugins: {
tailwindcss,
postcssPresetEnv
},
}

,还有一些是必要的,当一个配置文件没有按照默认命名时,必须合并。

今天我得到这个错误,当使用postcss.config.js运行yarn dev时,如例2所示:

Syntax Error: /[path]/_pod-test/postcss.config.js:3
require('tailwindcss'),
^^^^^^^^^^^
SyntaxError: Unexpected string

当我删除带有"tailwindcss"的行时,同样的事情发生在"postcss-preset-env":

Syntax Error: /Volumes/_III_/Z_WWW/_ZZZ PoD/_pod-test/postcss.config.js:3
require('postcss-preset-env')({
^^^^^^^^^^^^^^^^^^^^
SyntaxError: Unexpected string

当我切换到示例1中所示的设置时,我得到这个错误:

Syntax Error: Error: PostCSS plugin tailwindcss requires PostCSS 8.
Migration guide for end-users:
https://github.com/postcss/postcss/wiki/PostCSS-8-for-end-users

我使用postcss 8.3.9!

这一切都发生在一个使用vue-cli作为ve2项目的项目中。

我必须申请哪种巫术才能使这个设置工作?

我发布的例子1和2之间有一个微妙但非常重要的区别。

例2实际上是错误的!

而例1使用对象要配置插件的参数,第二个示例使用函数调用。这些必须放在ARRAY中(意思是:用大括号代替大括号)。

这将是例2的正确版本:

// Example 2 fixed:
module.exports = {
plugins: [  // <= here we MUST use brackets!
... [function calls] ...
],
}

我还没有测试,如果这也是真的,例如3(但我假设是)。

希望这能帮助到一些人!

package.json我有:

"postcss": {
"plugins": [
"postcss-import",
"tailwindcss",
"postcss-preset-env",
"autoprefixer",
"cssnano"
]
}

这是我生产的完整设置。我有顺风3.0.23,但它可能适用于任何版本。

如果你使用cssnano,你不需要为postcss-preset-env设置tailwindcss/nesting,这是tailwind在他们的文档中推荐的:https://tailwindcss.com/docs/using-with-preprocessors#nesting

为什么?因为cssnano合并了它们产生的重复代码。这个使用cssnano的解决方案是由一个顺风团队成员推荐的:https://github.com/tailwindlabs/tailwindcss/issues/4634#issuecomment-861392246

在你的终端上运行下面的命令,通过npm安装顺风css和它的依赖。

npm install tailwindcss postcss autoprefixer

当您尝试运行项目时,可能会得到您提到的错误消息

Error: PostCSS plugin tailwindcss requires PostCSS 8.

运行以下代码卸载以前的安装并修复错误

npm uninstall tailwindcss postcss autoprefixer 
npm install tailwindcss@npm:@tailwindcss/postcss7-compat@tailwindcss/postcss7-compat postcss@^7 autoprefixer@^9

接下来,您需要生成Tailwind和PostCSS配置文件

npx tailwindcss init -p

你的配置文件应该是这样的

postcss。配置文件

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

tailwindcss。配置文件

module.exports = {
future: {
// removeDeprecatedGapUtilities: true,
// purgeLayersByDefault: true,
},
purge: [],
theme: {
extend: {},
},
variants: {},
plugins: [],
};

最后,打开main.js文件,导入包含顺风指令的tailwind.css文件,即

import './css/tailwind.css'

对我来说是这个配置可以正确运行:

// Example 3:
const tailwindcss = require('tailwindcss');
const postcssPresetEnv = require('postcss-preset-env');

module.exports = {
plugins: {
tailwindcss,
postcssPresetEnv
},
}

和此版本的库:

"postcss": "^8.4.6",
"postcss-cli": "^9.1.0",
"tailwindcss": "^3.0.18",

我没有尝试postcss的所有功能,但基本进程文件在CLI中正常运行…

相关内容

  • 没有找到相关文章

最新更新