猫码让前端飞Web前端之路

6、webpack从0到1-less、sass、postcss

2020-03-14  本文已影响0人  ComfyUI

还是延续上节的内容,webpack如何处理less、sass这种预编译样式文件。
本节的内容主要是postcss的运用,postcss很强大,我们小试牛刀用它来实现在不同的浏览器中为我们自动添加前缀如-webkit--moz-等等以做兼容。
git仓库:webpack-demo

1、处理sass

$ cd chapter6
$ npm install sass-loader node-sass --save-dev
...
  module: {
    rules: [
      // 处理sass
      {
        test: /\.s[ac]ss$/i,
        use: [
          "style-loader",
          "css-loader",
          "sass-loader" // 将 Sass 编译成 CSS,默认使用 Node Sass
        ]
      },
    ]
  }
...

2、新建

 webpack-demo/chapter6
  ...
  |- /src
    |- /assets
    |- /styles
       |- header.css
+      |- content.scss
    |- logo.js
    |- header.js
    |- content.js
    |- footer.js
    |- index.js
    |- header.css
  |- index.html
  |- package.json
  |- webpack.config.js
  ...  
body {
  .content {
    background: green;
  }
}
export function createContent() {
   const div = document.createElement("div");
   div.innerText = "主体内容";
+  div.classList.add("content");
   document.body.appendChild(div);
}
import { createLogo } from "./logo";
import { createHeader } from "./header";
import { createContent } from "./content";
import { createFooter } from "./footer";

import "./styles/header.css";
+ import "./styles/content.scss";

createLogo();
createHeader();
createContent();
createFooter();

3、处理less

$ npm install less less-loader --save-dev
...
  module: {
    rules: [
      ...
      // 处理less
      {
        test: /\.less$/,
        use: ["style-loader", "css-loader", "less-loader"]
      },
      ...
    ]
  }
...

4、安装postcss

$ npm i postcss-loader --save-dev
$ npm install autoprefixer --save-dev
.header {
   background: green;
+  box-shadow: 0 0 20px green;
}

4、配置postcss

 webpack-demo/chapter6
  ...
  |- /src
  |- index.html
  |- package.json
+ |- postcss.config.js
  |- webpack.config.js
  ...  
+  module.exports = {
+    plugins: {
+      "autoprefixer": {}
+    }
+  };
...
  module: {
    rules: [
      // 处理sass
      {
        test: /\.s[ac]ss$/i,
        use: [
          "style-loader",
          "css-loader",
+         "postcss-loader", // 因为这里处理的是css文件,所以要放在sass-loader的上面
          "sass-loader"
        ]
      },
    ]
  }
...
{
...
+  "browserslist": [
+    "> 1%",
+    "last 2 versions"
+  ]
...
}

4、小结

参考链接:
postcss-loader
webpack css-loader

上一篇 下一篇

猜你喜欢

热点阅读