浅谈webpack构建工具配置和常用插件总结

浅谈webpack构建工具配置和常用插件总结

1. 什么是Webpack

Webpack 是一个现代化 JavaScript 应用程序的静态模块打包器(module bundler)。Webpack 能够对模块进行打包处理,将多个模块打包成一个或多个打包文件,将应用程序的所有资源视为模块,把它们视为一个整体,并建立各个模块之间的依赖关系,最终生成最终的合并版本。

2. Webpack的配置及常用插件

2.1 Webpack的配置

Webpack有两种配置方法,分别是命令行方式和配置文件方式。

2.1.1 命令行方式

命令行方式在执行 webpack 命令时,加上配置参数。

例如:

webpack entry.js bundle.js --module-bind 'css=style-loader!css-loader' --watch --progress

其中
- entry.js 为你项目的入口文件
- bundle.js 为输出文件的文件名
- module-bind 指定 Webpack 在遇到css文件时使用style-loader 和 css-loader
- watch 选项指定 Webpack 在代码发生变化时重新编译
- progress 选项指定 Webpack 输出编译进度

2.1.2 配置文件方式

使用开发者自定义的配置文件。

常规配置文件结构:

const path = require('path');

module.exports = {
  entry: './src/index.js', // 入口文件路径
  output: { // 输出文件配置
    path: path.resolve(__dirname, 'dist'), // 输出路径
    filename: 'bundle.js' // 输出文件名称
  },
  module: { // 模块loader配置
    rules: [
      {
        test: /\.css$/, // 匹配文件格式
        use: [
          'style-loader', // css-loader,用于转换 css 代码,style-loader 用于将 css 插入到 HTML 的 header 中
          'css-loader'
        ]
      }
    ]
  }
}

2.2 常用插件

2.2.1 html-webpack-plugin

html-webpack-plugin 是一个便于通过 webpack 生成 HTML 文件的插件,它会创建一个 html 文件,并把 webpack 打包生成的js文件自动插入到这个html文件中,还可以配置一些参数。

使用方法:

const HtmlWebpackPlugin = require('html-webpack-plugin');

module.exports = {
  plugins: [
    new HtmlWebpackPlugin({
      template: './src/index.html', // 指定html模板文件位置
      title: 'Webpack App' // 设置生成的HTML文件的标题
    })
  ]
};

2.2.2 clean-webpack-plugin

clean-webpack-plugin 是一个 webpack 插件,可以用来删除webpack打包输出目录的内容,保证每次输出的文件都是最新的。

使用方法:

const { CleanWebpackPlugin } = require('clean-webpack-plugin');

module.exports = {
  plugins: [
    new CleanWebpackPlugin()
  ]
};

3. 示例

3.1 单页面应用配置

const path = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const { CleanWebpackPlugin } = require('clean-webpack-plugin');

module.exports = {
  mode: 'development',
  entry: './src/index.js',
  output: {
    path: path.resolve(__dirname, 'dist'),
    filename: 'bundle.js'
  },
  module: {
    rules: [
      {
        test: /\.js$/,
        exclude: /(node_modules|bower_components)/,
        use: {
          loader: 'babel-loader',
          options: {
            presets: ['@babel/preset-env'],
            plugins: ['@babel/plugin-transform-runtime']
          }
        }
      },
      {
        test: /\.(png|svg|jpg|gif)$/,
        use: [
          'file-loader'
        ]
      }
    ]
  },
  plugins: [
    new CleanWebpackPlugin(),
    new HtmlWebpackPlugin({
      template: './src/index.html'
    })
  ]
};

3.2 多页应用配置

const path = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const { CleanWebpackPlugin } = require('clean-webpack-plugin');

module.exports = {
  mode: "production",
  entry: {
    // page1入口文件
    page1: "./src/page1.js",
    // page2入口文件
    page2: "./src/page2.js"
  },
  output: {
    path: path.join(__dirname, "dist"),
    filename: "[name].js"
  },
  module: {
    rules: [
      {
        test: /\.js$/,
        loader: "babel-loader",
        exclude: /node_modules/
      }
    ]
  },
  plugins: [
    new CleanWebpackPlugin(),
    new HtmlWebpackPlugin({
      filename: 'page1.html',
      template: './src/page1.html',
      chunks: ['page1']
    }),
    new HtmlWebpackPlugin({
      filename: 'page2.html',
      template: './src/page2.html',
      chunks: ['page2']
    })
  ]
};

4. 总结

本文讲解了Webpack的概述,以及Webpack的配置项和常用插件,还附带了两个示例。掌握了这些知识点,相信可以帮助你掌握Webpack的使用方法,提高项目的构建效率。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:浅谈webpack构建工具配置和常用插件总结 - Python技术站

(0)
上一篇 2023年6月9日
下一篇 2023年6月9日

相关文章

  • 如何换个角度使用VUE过滤器详解

    下面就是关于如何换个角度使用VUE过滤器的完整攻略了。 什么是VUE过滤器? VUE过滤器是一种用于格式化显示内容的机制,在VUE中使用{{ }}语法进行内容绑定时,可以通过管道符“|”来使用过滤器。例如:{{msg | capitalize}}。在这个例子中,capitalize就是一个过滤器。 如何使用VUE过滤器? 在Vue的template模板中使用…

    css 2023年6月10日
    00
  • JS实现仿微博可关闭弹出层效果

    要实现仿微博可关闭弹出层效果,以下是完整攻略: 步骤一:HTML结构 首先,在HTML页面中,需要创建一个弹出层的容器,并在其中添加弹出层的内容。例如: <div class="dialog"> <div class="dialog-content"> <h2>弹出层标题</h…

    css 2023年6月10日
    00
  • Django前端BootCSS实现分页的方法

    下面我将为大家讲解如何使用Django和Bootstrap实现分页: 1. 引入Bootstrap 首先,我们需要在Django项目中引入Bootstrap框架。在base.html文件(或者其他你想要放置的文件)中添加以下代码: <!– 引入Bootstrap –> <link rel="stylesheet" h…

    css 2023年6月10日
    00
  • ThinkPHP6.0如何利用自定义验证规则规范的实现登陆

    下面是ThinkPHP6.0如何利用自定义验证规则规范的实现登陆的完整攻略: 1. 添加自定义验证规则 在ThinkPHP6.0中,我们可以通过创建app\validate目录来添加自定义验证规则。在该目录下创建一个UserLogin.php文件,然后按照以下格式编写代码: <?php namespace app\validate; use think…

    css 2023年6月10日
    00
  • js实现滚动条滚动到页面底部继续加载

    JS如何实现滚动条滚动到页面底部继续加载数据 随着Web技术的不断发展,越来越多的网站需要实现无限滚动( Infinite scrolling )功能,即在页面滚动到底部时不刷新页面,而是继续加载更多的内容。这一功能已经成为现代网页设计的标配。本文将向您介绍如何使用JavaScript来实现无限滚动的功能。 一、window对象的scroll事件 使用Jav…

    css 2023年6月10日
    00
  • CSS毛玻璃效果如何实现

    CSS毛玻璃效果如何实现 CSS毛玻璃效果是一种模糊的视觉效果,可以使图像或背景看起来更加柔和和模糊。本攻略将介绍两种实现CSS毛玻璃效果的方法,包括使用CSS滤镜和使用背景图像。 使用CSS滤镜 CSS滤镜是一种CSS属性,可以对元素应用各种视觉效果,包括模糊、颜色调整、亮度调整等。使用CSS滤镜可以轻松实现CSS毛玻璃效果。例如: .blur { bac…

    css 2023年5月18日
    00
  • HTML表格布局实例讲解

    HTML表格布局实例讲解 HTML表格是一种非常常见的布局方式,常用于展示数据等需要排列的内容,同时也可以用于网页的整体布局。在本篇文章中,我们将详细讲解HTML表格布局的使用方法和相关技巧。 基本语法 在HTML中,表格由<table>标签包裹,每行由<tr>标签包裹,每个单元格由<td>标签包裹。例如: <tab…

    css 2023年6月10日
    00
  • CSS 实现平行四边形的示例代码

    CSS 实现平行四边形的方式通常有两种,分别是倾斜变形和使用伪元素实现。以下是两种方法的示例说明和完整攻略: 方法一:倾斜变形 实现一个平行四边形最常见的方式是对元素进行倾斜变形,通过旋转和缩放等方式使得正方形变成平行四边形。 示例代码如下: .parallelogram { width: 100px; height: 100px; background-c…

    css 2023年6月10日
    00
合作推广
合作推广
分享本页
返回顶部