Skip to content

在 webpack 中使用 postcss

js
未来的 css 语法     -->     普通的 css  --> js          -->     页面 style 元素
                postcss                     css-loader     style-loader

步骤

  • 搭建 webpack 环境,需要安装
sh
webpack
webpack-cli
html-webpack-plugin
  • 准备.pcss 文件,在 index.js 引入
  • 下载 postcss 和 postcss-loader
sh
#因为转换css代码依靠的是postcss的一个函数,这里就不需要使用postcss-cli了,直接使用loader
pnpm i postcss postcss-loader -D

配置 postcss.config.js 文件,文件需要 postcss 插件[postcss-preset-env] 配置.browserslistrc 文件

  • 下载安装 css-loader 和 style-loader,并在 webpack 中配置
sh
pnpm i css-loader style-loader -D
  • 最后,如果有需要 css 的校验,那么可以直接依靠 vscode 的 style-lint 插件,提供一个.stylelintrc

总结

在 webpack 中使用 postcss,只是不需要 postcss-cli 命令行工具,别的没有什么差别。

实践

这里只需要参考 webpack.config.js 和 postcss.config.js 即可,重点看里面的配置和插件

json
{
  "name": "test",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "build": "webpack",
    "dev": "webpack-dev-server"
  },
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "css-loader": "^3.4.2",
    "html-webpack-plugin": "^3.2.0",
    "postcss": "^7.0.26",
    "postcss-loader": "^3.0.0",
    "postcss-preset-env": "^6.7.0",
    "style-loader": "^1.1.3",
    "stylelint-config-standard": "^19.0.0",
    "webpack": "^4.41.5",
    "webpack-cli": "^3.3.10",
    "webpack-dev-server": "^3.10.3"
  }
}
js
const HtmlWebpackPlugin = require("html-webpack-plugin");

module.exports = {
  mode: "development",
  devtool: "source-map",
  //
  devServer: {
    open: true,
  },
  //
  module: {
    rules: [
      {
        test: /\.(css|pcss)$/,
        use: ["style-loader", "css-loader?modules", "postcss-loader"],
      },
    ],
  },

  //
  plugins: [
    new HtmlWebpackPlugin({
      template: "./public/index.html",
    }),
  ],
};
js
module.exports = {
  map: false, //关闭source-map
  plugins: {
    "postcss-preset-env": {
      stage: 0, //哪怕是处于草案阶段的语法,也需要转换
      preserve: false,
    },
  },
};
json
{
  "extends": "stylelint-config-standard",
  "rules": {
    "indentation": 4
  }
}

MIT License