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

yizhihongxing

浅谈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 是一款流行的 JavaScript 框架,但在处理大型应用程序时,可能会遇到性能问题。为了提高 Vue 应用程序的性能,可以采用一些优化方法。本文将提供一些关于 Vue 性能优化的方法的完整攻略,包括使用懒加载和使用 keep-alive 组件的示例说明。 使用懒加载 懒加载是一种延迟加载技术,它可以在需要时加载组件或资源,而不是在应用程序启动时加载…

    css 2023年5月18日
    00
  • swiper Scrollbar滚动条组件详解

    Swiper 是一个流行的移动端触摸滑动插件,它支持各种滑动效果,同时还提供了一组插件组件,用于扩展滑动的功能,其中之一就是 Scrollbar 滚动条组件。 Scrollbar 滚动条组件 Scrollbar 组件可以添加一个滚动条来显示 Swiper 容器的滑块位置。当内容区域比 Swiper 容器小时,它可以作为进度条指示当前显示内容占整个内容的比例。…

    css 2023年6月10日
    00
  • CSS设置背景的4种方法(颜色、图片、渐变、位置…)

    CSS背景是一个非常重要的网页设计元素,它可以通过不同的CSS属性实现各种效果,如颜色、图像、重复方式、定位等。在本文中,我们将深入讨论所有与CSS背景有关的内容,并提供相关的代码示例。 背景颜色 background-color 该属性可以设置一个元素的背景颜色。可以使用命名颜色或HEX颜色值进行设置。 代码示例: body { background-co…

    Web开发基础 2023年3月20日
    00
  • 全网最详细的vscode基础教程

    全网最详细的vscode基础教程攻略 介绍 Visual Studio Code(VS Code)是一款流行的开源IDE,它支持多种编程语言,包括JavaScript、Python、C++等。本教程旨在为初学者提供全方位的VS Code基础教程。 安装VS Code 首先,我们需要下载和安装VS Code。如果你还没有安装,你可以前往VS Code官网(ht…

    css 2023年6月10日
    00
  • 四种css 伪类选择器

    下面是详细讲解“四种CSS伪类选择器”的完整攻略,该过程中包含两条示例说明。 CSS伪类选择器是用于选择HTML元素的特殊选择器,根据元素在不同状态下的表现来选择元素,如链接状态、 hover 状态、focus状态、 nth-child 选择。在CSS中有四种常用的伪类选择器,分别是:link、:visited、:hover和:focus。 :link 和 …

    css 2023年6月9日
    00
  • angular4+百分比进度显示插件用法示例

    首先,我们需要使用npm安装一个名为ngx-progressbar的Angular插件,并将其添加到我们的项目中。 npm install ngx-progressbar –save 在app.module.ts中导入和添加NgProgressModule。 import { NgProgressModule } from ‘@ngx-progressba…

    css 2023年6月10日
    00
  • JavaScript for of

    JavaScript的for of循环是ES6中的一个新特性,它可以用于遍历可迭代对象(Iterable)。本文将详细介绍for of循环的使用方法,以及提供代码示例。 for of循环的基本语法如下: for (let item of iterable) { // Statement } 其中,iterable表示一个可迭代对象,如字符串、数组、Set、M…

    Web开发基础 2023年3月30日
    00
  • HTML5实现移动端弹幕动画效果

    HTML5实现移动端弹幕动画效果的攻略如下: 1. 确定弹幕元素 要实现弹幕动画效果,首先需要确定弹幕元素,也就是实际展示弹幕内容的部分。可以使用HTML中的<span>元素来作为弹幕元素,其具有轻量、通用、易操作的特点。 2. CSS样式设计 为了实现弹幕动画的整体视觉效果,需要对弹幕元素进行CSS样式的设计。下面是一些常用的CSS样式属性: …

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