处理css, Less, Sass

安装

  1. npm i css-loader style-loader -D
  2. npm i less less-loader -D
  3. npm i node-sass sass-loader -D

配置

  1. const path = require('path')
  2. const HtmlWebpackPlugin = require('html-webpack-plugin')
  3. module.exports = {
  4. entry: './src/index.js',
  5. output: {
  6. path: path.join(__dirname, '/dist/'),
  7. filename: "bundle.js"
  8. },
  9. mode: 'development',
  10. plugins: [
  11. // 配置 html-webpack-plugin
  12. new HtmlWebpackPlugin({
  13. filename: 'index.html', // 在内存中生成的文件名
  14. template: './src/index.html' // 模板,以磁盘上的这个文件为模板,不用引入 bundle.js
  15. })
  16. ],
  17. module: {
  18. rules: [ // 配置处理 css, less, sass, scss
  19. {
  20. test: /\.css$/,
  21. use: ['style-loader', 'css-loader'] // loader 从右向左 执行
  22. },
  23. {
  24. test: /\.less$/,
  25. use: ['style-loader', 'css-loader', 'less-loader']
  26. },
  27. {
  28. test: /\.s(c|a)ss$/,
  29. use: ['style-loader', 'css-loader', 'sass-loader']
  30. }
  31. ]
  32. },
  33. // 配置 webpack-dev-server
  34. devServer: {
  35. open: true,
  36. compress: true,
  37. hot: true,
  38. port: 3000,
  39. contentBase: './src'
  40. }
  41. }

处理 CSS

处理 css 文件,需要使用 css-loader 和 style-loader 包:

  • css-loader:解析css 文件
  • style-loader:将解析出的文件放入html,使其生效

安装

  1. npm i css-loader style-loader -D

配置

在 webpack.config.js 文件修改如下:

  1. module.exports = {
  2. //...
  3. // 配置 css loader
  4. module: {
  5. rules: [
  6. {
  7. test: /\.css$/,
  8. use: ['style-loader', 'css-loader'] // loader 从右向左 执行
  9. }
  10. ]
  11. },
  12. //...
  13. }

:::warning loader 配置后,是按从右向左的顺序执行。 :::

处理 Less

安装

  1. npm i css-loader style-loader -D
  2. npm i less less-loader -D

配置

  1. module: {
  2. rules: [
  3. {
  4. test: /\.css$/,
  5. use: ['style-loader', 'css-loader']
  6. },
  7. {
  8. test: /\.less$/,
  9. use: ['style-loader', 'css-loader', 'less-loader']
  10. }
  11. ]
  12. }

处理 Sass

安装

  1. npm i css-loader style-loader -D
  2. npm i node-sass sass-loader -D

配置

  1. module: {
  2. rules: [
  3. {
  4. test: /\.css$/,
  5. use: ['style-loader', 'css-loader']
  6. },
  7. {
  8. test: /\.s(c|a)ss$/,
  9. use: ['style-loader', 'css-loader', 'sass-loader']
  10. }
  11. ]
  12. }