配置 postcss.config.js 的规则到底是什么(主要是使用 tailwind css)?
What exactly are the rules for configuring postcss.config.js (mainly with 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
},
}
当必须合并未根据默认命名的配置文件时,还有一些必要的。
今天我收到这个错误,当 运行 yarn dev
和 postcss.config.js 时,如示例 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
当我然后 s 到示例 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
作为 Vue2 项目设置的项目中。
我必须应用哪个 工艺才能使此设置生效?
在您的终端中 运行 使用以下命令通过 npm 安装 tailwind 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.config 文件
module.exports = {
plugins: {
tailwindcss: {},
autoprefixer: {},
},
};
tailwindcss.config 文件
module.exports = {
future: {
// removeDeprecatedGapUtilities: true,
// purgeLayersByDefault: true,
},
purge: [],
theme: {
extend: {},
},
variants: {},
plugins: [],
};
最后,打开您的 main.js 文件并导入包含 tailwind 指令的 tailwind.css 文件,即
import './css/tailwind.css'
我发布的示例 1 和示例 2 之间存在细微但非常重要的区别。
例2其实是错误的!
示例 1 使用 objects 来配置插件的参数,而示例 2 使用函数调用。这些必须放在 ARRAY 中(意思是:括号而不是大括号)。
这将是示例 2 的正确版本:
// Example 2 fixed:
module.exports = {
plugins: [ // <= here we MUST use brackets!
... [function calls] ...
],
}
我还没有测试示例 3 是否也是如此(但我假设如此)。
希望这对某人有所帮助!
对我来说,这个配置可以 运行 正确:
// 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 功能,而是将基本过程文件正确地 运行...
在 package.json
我有:
"postcss": {
"plugins": [
"postcss-import",
"tailwindcss",
"postcss-preset-env",
"autoprefixer",
"cssnano"
]
}
这是我的完整生产设置。我有 tailwind 3.0.23
,但它可能适用于任何版本。
如果您使用 cssnano
,则无需为 postcss-preset-env
设置 tailwindcss/nesting
,tailwind 在其文档中推荐:https://tailwindcss.com/docs/using-with-preprocessors#nesting
为什么?因为 cssnano
合并了它们都产生的重复代码。 Tailwind 团队成员之一推荐使用 cssnano
的解决方法:https://github.com/tailwindlabs/tailwindcss/issues/4634#issuecomment-861392246
为了展示 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
},
}
当必须合并未根据默认命名的配置文件时,还有一些必要的。
今天我收到这个错误,当 运行 yarn dev
和 postcss.config.js 时,如示例 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
当我然后 s 到示例 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
作为 Vue2 项目设置的项目中。
我必须应用哪个 工艺才能使此设置生效?
在您的终端中 运行 使用以下命令通过 npm 安装 tailwind 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.config 文件
module.exports = {
plugins: {
tailwindcss: {},
autoprefixer: {},
},
};
tailwindcss.config 文件
module.exports = {
future: {
// removeDeprecatedGapUtilities: true,
// purgeLayersByDefault: true,
},
purge: [],
theme: {
extend: {},
},
variants: {},
plugins: [],
};
最后,打开您的 main.js 文件并导入包含 tailwind 指令的 tailwind.css 文件,即
import './css/tailwind.css'
我发布的示例 1 和示例 2 之间存在细微但非常重要的区别。
例2其实是错误的!
示例 1 使用 objects 来配置插件的参数,而示例 2 使用函数调用。这些必须放在 ARRAY 中(意思是:括号而不是大括号)。
这将是示例 2 的正确版本:
// Example 2 fixed:
module.exports = {
plugins: [ // <= here we MUST use brackets!
... [function calls] ...
],
}
我还没有测试示例 3 是否也是如此(但我假设如此)。
希望这对某人有所帮助!
对我来说,这个配置可以 运行 正确:
// 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 功能,而是将基本过程文件正确地 运行...
在 package.json
我有:
"postcss": {
"plugins": [
"postcss-import",
"tailwindcss",
"postcss-preset-env",
"autoprefixer",
"cssnano"
]
}
这是我的完整生产设置。我有 tailwind 3.0.23
,但它可能适用于任何版本。
如果您使用 cssnano
,则无需为 postcss-preset-env
设置 tailwindcss/nesting
,tailwind 在其文档中推荐:https://tailwindcss.com/docs/using-with-preprocessors#nesting
为什么?因为 cssnano
合并了它们都产生的重复代码。 Tailwind 团队成员之一推荐使用 cssnano
的解决方法:https://github.com/tailwindlabs/tailwindcss/issues/4634#issuecomment-861392246