首页 > 其他分享 >【Webpack】-定义及各种使用和自动生成html插件

【Webpack】-定义及各种使用和自动生成html插件

时间:2024-01-04 19:32:55浏览次数:33  
标签:插件 webpack js Webpack html path login 打包

一、什么是Webpack

webpack被定义为现代 JavaScript 应用程序的静态模块打包器(module bundler),是目前最为流行的JavaScript打包工具之一。

静态模块:指的是编写代码过程中的,html,css,js,图片等固定内容的文件

打包:把静态模块内容,压缩,整合,转译等(前端工程化)

1.把less/sass转成css代码

2.把ES6+降级成ES5

3.支持多种模块标准语法

【Webpack】-定义及各种使用和自动生成html插件_Webpack

二、使用Webpack

需求:封装utils包,校验手机号长度和验证码长度,在src/index.js中使用并打包观察

步骤:

1.新建并初始化项目,编写业务代码

2.下载webpack webpack-cli到当前项目中(版本独立),并配置局部自定义命令

3.运行打包命令,自动产生dist分发文件夹(压缩和优化后,用于最终运行的代码)【Webpack】-定义及各种使用和自动生成html插件_验证码_02【Webpack】-定义及各种使用和自动生成html插件_html_03【Webpack】-定义及各种使用和自动生成html插件_验证码_04

注意:build是可以随着自己定义名称的,但后面的webpack是固定死的

【Webpack】-定义及各种使用和自动生成html插件_Webpack_05

三、修改Webpack打包入口和出口

步骤:

1.项目根目录,新建webpack.config.js配置文件

2.导出配置对象,配置入口,出口文件的路径

3.重新打包观察

注意:只有和入口产生直接/间接的引入关系,才会被打包

【Webpack】-定义及各种使用和自动生成html插件_验证码_06

【Webpack】-定义及各种使用和自动生成html插件_验证码_07

【Webpack】-定义及各种使用和自动生成html插件_Webpack_08

【Webpack】-定义及各种使用和自动生成html插件_验证码_09

【Webpack】-定义及各种使用和自动生成html插件_html_10

四、案列(用户登录-长度判断)

需求:点击登录按钮,判断手机号和验证码长度

步骤:

1.准备用户登录页面

2.编写核心JS逻辑代码

3.打包并手动复制网页到dist下,引入打包后的JS运行

核心:Webpack打包后的代码,作用在前端网页中使用

【Webpack】-定义及各种使用和自动生成html插件_Webpack_11

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>黑马头条-数据管理平台</title>
</head>

<body>
  <!-- 警告框 -->
  <div class="alert info-box">
    操作结果
  </div>
  <!-- 登录页面 -->
  <div class="login-wrap">
    <div class="title">黑马头条</div>
    <div>
      <form class="login-form">
        <div class="item">
          <input type="text" class="form-control" name="mobile" placeholder="请输入手机号" value="13888888888">
        </div>
        <div class="item">
          <input type="text" class="form-control" name="code" placeholder="默认验证码246810" value="246810">
        </div>
        <div class="item">
          <button type="button" class="btn btn-primary btn">登 录</button>
        </div>
      </form>
    </div>
  </div>
</body>
</html>
//1.1准备项目和源代码
import { checkPhone, checkCode } from "../utils/check.js"
console.log(checkPhone('13900002020'))
console.log(checkCode('123123123123'))




//编写核心JS逻辑代码
document.querySelector('.btn').addEventListener('click', () => {
    const phone = document.querySelector('.login-form [name=mobile]').value
    const code = document.querySelector('.login-form [name=code]').value

    if (!checkPhone(phone)) {
        console.log('手机号长度必须是11位')
        return
    }
    if (!checkCode(code)) {
        console.log('验证码长度必须是6位')
        return
    }

    console.log('提交到服务器登录......')
})

【Webpack】-定义及各种使用和自动生成html插件_验证码_12

【Webpack】-定义及各种使用和自动生成html插件_验证码_13

五、自动生成html文件

步骤:

1.下载html-webpack-plugin本地软件包

2.配置webpack.config.js让Webpack拥有插件功能

3.重新打包观察效果

【Webpack】-定义及各种使用和自动生成html插件_html_14

【Webpack】-定义及各种使用和自动生成html插件_html_15

const path = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin')
module.exports = {
    //入口
    entry: path.resolve(__dirname, 'src/login/index.js'),
    //出口
    output: {
        path: path.resolve(__dirname, 'dist'),
        filename: './login/index.js',
        clean: true //生成打包后内容之前,清空输出目录
    },
    plugins: [
        new HtmlWebpackPlugin({
            template: path.resolve(__dirname, 'public/login.html'),//模板文件
            filename: path.resolve(__dirname, 'dist/login/index.html')//输出文件
        })
    ]
};

【Webpack】-定义及各种使用和自动生成html插件_Webpack_16

标签:插件,webpack,js,Webpack,html,path,login,打包
From: https://blog.51cto.com/u_15858858/9104077

相关文章

  • 微信小程序直播(二):如何使用第三方直播插件快速实现企业直播间
    ZEGO微信小程序直播SDK可以在微信小程序中提供实时音视频直播服务,从而实现电商直播/在线教育/在线问诊/视频客服等各种业务场景。但是由于微信小程序的官方限制,在某些场景下需要额外使用ZEGO提供的小程序直播插件才能实现实时音视频直播功能。本节将介绍需要使用与不需要使用Z......
  • HTML5 文件上传的2种方式
    以前上传文件需要提交Form表单。HTML5方式上传文件,可以通过使用FormData类模拟Form表单提交,从而实现无刷新上传文件。 假设有一个文件选择框<inputtype="file"name="pic"id="pic"accept="image/gif"/>有下面2种方式上传文件:1、XMLHttpRequest(有进度事件)varfiles=document.......
  • html5实现文件批量上传组件
    一、概述在html5中,相对于之前添加了不少新的元素和属性,在javascript中也添加了一些新的API,这些给我们的开发带来了很多便利。但由于各浏览器的发展步骤不一致,也导致了不同浏览器对html5支持的差异性。 二、实现原理1.在该html5实现的文件批量上传组件中,我们主要是利用html5中的一......
  • 使用HTML5实现多文件上传
    入门Fileinput之所以叫fileinput是因为它是一个标准的input元素,且其type属性被设置为"file"。很多年以来,fileinput一次只能选择并上传单个文件。在新的HTML5规范中为input元素添加了多选模式。当然,不同浏览器对于规范的实现一直以来都不尽相同。比如,Firefox3.6和WebKit以及Firef......
  • Postman版IDEA插件!免费!
    Postman是大家最常用的API调试工具,那么有没有一种方法可以不用手动写入接口到Postman,即可进行接口调试操作?今天给大家推荐一款IDEA插件:ApipostHelper,写完代码就可以调试接口并一键生成接口文档!而且还可以根据已有的方法帮助您快速生成url和params。更重要的是他完全免费!Apipost......
  • 爬虫如何使用代理IP通过HTML和CSS采集数据
    前言爬虫是一种自动化工具,用于从互联网上获取数据。代理IP是一种用于隐藏真实IP地址并改变网络请求的方法。在爬虫中使用代理IP可以帮助我们采集大量数据时绕过反爬虫机制,并提高爬取效率。本文将介绍如何使用代理IP通过HTML和CSS采集数据,并提供相关代码示例。1.了解代理IP代理IP是......
  • 超好用的IDEA插件!免费
    IDEA是一款功能强大的集成开发环境(IDE),它可以帮助开发人员更加高效地编写、调试和部署软件应用程序。我们在编写完接口代码后需要进行接口调试等操作,一般需要打开额外的调试工具。今天给大家介绍一款IDEA插件:Apipost-Helper-2.0。代码写完直接编辑器内调试、还支持生成接口文档、接......
  • EssentialsX 多功能管理插件配置文件参考
    EssentialsX是原Essentials插件的分支版本。参考:<https://wiki.mc-ess.net/wiki/><https://mineplugin.org/Essentials><https://essinfo.xeya.me/>配置文件plugins/Essentials/config.yml#############################################################+-------......
  • 【Chrome插件】Chrome插件开发流程
    请继续阅读以下更详细的Chrome插件开发流程:确定需求和目标:定义插件的功能和目标。考虑用户需求,确定插件解决的问题或提供的价值。进行竞争分析,了解类似插件的市场情况。设计插件的功能列表,明确需要实现的功能。规划插件架构:根据需求,设计插件的整体架构和组件结构。确定插件的页面结......
  • HTML实现圣诞树
    https://aiyc.top/Christmas-tree/Code:<!DOCTYPEHEMLPUBLIC><htmlxmlns="http://www.w3.org/1999/html"><head><metacharset="utf-8"><style>*{box-sizing:border-box;......