浅谈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日

相关文章

  • CSS高级技巧:网页布局

    CSS高级技巧:网页布局 网页布局是Web开发中的重要部分,它决定了网页的外观和用户体验。在本文中,我们将介绍一些CSS高级技巧,帮助您更好地掌握网页布局。 1. Flexbox布局 Flexbox布局是一种灵活的布局方式,可以轻松地实现复杂的布局效果。以下是一个简单的例: <div class="container"> &l…

    css 2023年5月18日
    00
  • 详解一级导航的制作

    一级导航是网站设计中非常重要的组成部分,它可以让用户轻松地找到自己需要的内容。下面介绍一下制作一级导航的详细攻略。 1. 确定导航分类 在制作一级导航时,首先需要确定网站的分类,这样才能为导航条提供具体的内容。对于新手来说,最好不要过多地划分分类,以免用户在使用网站时产生疑惑。例如一个简单的分类可以是:首页、产品、新闻等。 2. 设计导航条 在确定分类之后,…

    css 2023年6月10日
    00
  • CSS 学习心得

    CSS 学习心得 什么是 CSS? CSS(Cascading Style Sheets,层叠样式表)是一种用于定义网页内容样式和外观的语言。 CSS 的基本语法 CSS 的语法是由选择器和声明块组成的: 选择器 { 声明1; 声明2; … 声明N; } 其中,选择器用于选中要应用样式的 HTML 元素,声明块由一个或多个声明组成,每个声明由一个属性和一…

    css 2023年6月9日
    00
  • Firefox奇怪的文字溢出bug div里面的文字溢出

    针对“Firefox奇怪的文字溢出bug div里面的文字溢出”这个问题,我们可以采取以下步骤来解决: 1. 确认问题 首先我们需要确认问题的具体表现。如果发现在FireFox浏览器中,div中的文字或者图片出现了奇怪的溢出bug,那么就有可能是此问题。需要仔细确定div中的任何可能导致此问题的因素(如使用了绝对定位/浮动等)。 2. 重现问题 在解决问题的…

    css 2023年6月10日
    00
  • 网页HTML代码讲解:有序列表和无序列表

    下面我来为您详细讲解一下关于网页HTML代码中有序列表和无序列表的完整攻略。 什么是列表 在网页中,我们经常需要展示某些具有一定顺序的数据或者信息,这些数据或信息可能需要按照一定规律排列,这时候我们就需要使用到列表。HTML列表可以分为有序列表和无序列表。 无序列表 无序列表是一种无顺序的列表,其中的列表项不按照任何顺序进行排列。在HTML中,我们使用&lt…

    css 2023年6月10日
    00
  • 浅谈移动端的自适应布局问题(响应式、rem/em、Js动态)

    移动端自适应布局问题是在不同屏幕尺寸的移动设备上保持网页布局始终合适的问题。常见的解决方案包括响应式、rem/em以及Js动态。 响应式布局 响应式布局是指适配不同宽度的屏幕,使用CSS3的媒体查询(Media Query)来给不同尺寸的设备设置不同的样式。通常响应式布局可以分成三份(移动端、平板、PC端)设置不同的CSS样式。 以两列布局为例,代码如下: …

    css 2023年6月9日
    00
  • DIV+CSS+JS不间断横向滚动实现代码

    DIV+CSS+JS不间断横向滚动实现代码的攻略分为以下几个步骤: HTML布局 首先需要使用div标签创建一个包含所有滚动内容的容器,并设置样式overflow: hidden;,让容器内容不可见。 <div class="scroll-container"> <div class="scroll-conte…

    css 2023年6月10日
    00
  • 详解Vue.js3.0 组件是如何渲染为DOM的

    下面就来详细讲解一下Vue.js3.0 组件是如何渲染为DOM的攻略。 组件渲染说明 在 Vue.js 中,组件是一个独立的单元,可以复用和拆分,使得我们的代码更加模块化和易于维护。Vue.js3.0 的组件渲染过程主要包含以下几个步骤: 组件的准备阶段:Vue.js会读取组件模板中的标签和属性,解析出组件的结构和属性配置; 组件的实例化阶段:Vue.js …

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