webpack打包普通html项目,webpack打包处理

webpack打包普通html项目,webpack打包处理简介 webpack 是前端最流行的打包工具 能够做到以下 1 将 sass less 等预编译的 CSS 语言转化为浏览器能够识别的 css 文件 2 能够将多个文件 比如 多个 sass 文件 打包生成一个文件 3 能够打包 images styles assets scripts 等前端常见的文件 4 搭建了开发环境 开启了服务器 5 监视文件变化 文件改变后 能够自动刷新浏览器 6 对于 V

简介

?webpack 是前端最流行的打包工具,能够做到以下:

1) 将 sass/less 等预编译的CSS语言 转化为 浏览器能够识别的 css 文件

2 )能够将多个文件(比如:多个sass文件)打包生成一个文件

3 )能够打包 images/styles/assets/scripts 等前端常见的文件

4 )搭建了开发环境(开启了服务器)

5 )监视文件变化,文件改变后,能够自动刷新浏览器

6 )对于Vue来说,可以将 单文件组件(*.vue) 类型的文件,转化为浏览器能够识别的内容

项目打包上线:

1 )只需要执行一条命令: npm run build 就可以对项目进行打包处理

2) 所有文件(css/js/html) 的压缩合并

3 )在打包的过程中分离或者合并文件

4 )能够通过代码分离功能实现项目的按需加载

四个核心概念

?入口 entry

?出口 打包后输出内容

loaders 加载器:对于非JS的静态资源

plugins 插件

使用步骤

1 安装: npm i -D webpack webpack-cli

2 webpack 使用的两种方式:

2.1 命令行的使用方式

2.2 配置文件

命令行使用方式:

webpack 入口文件 出口文件路径

最基本的打包: webpack ./src/main.js

index.html引入js文件:

注意:使用 webpack 的时候应该提供mode, 可以是: production 或者 development

// production 表示: 生产模式 — 生产环境(也就是给用户使用的)

// development 表示: 开发模式 — 开发环境(也就是给开发人员开发使用的)

?指定模式:

./node_modules/.bin/webpack ./src/main.js –mode development

指定为生产模式:

./node_modules/.bin/webpack ./src/main.js –mode production

演示指定出口文件路径:

?./node_modules/.bin/webpack ./src/main.js -o ./dist/a.js –mode production

配置scripts去掉路径前缀:

?.\node_modules\.bin\webpack ./src/main.js –mode development

? 解决问题: 去掉 .\node_modules\.bin\

1 在 package.json 的 scripts 中添加一个 build 脚本

2 将 webpack 命令作为 build 脚本的值

3 在终端中执行命令: npm run build 来运行上面创建好的脚本

“scripts”: {

“build1”: “webpack ./src/main.js –mode development”,

}

webpack打包处理的过程:

案例: 使用jQuery实现隔行变色的效果

//index.html

  • 这是第1个li元素
  • 这是第2个li元素
  • 这是第3个li元素
  • 这是第4个li元素
  • 这是第5个li元素
  • 这是第6个li元素
  • 这是第7个li元素
  • 这是第8个li元素
  • 这是第9个li元素
  • 这是第10个li元素

package.json

“scripts”: {

“build1”: “webpack ./src/main.js –mode development”,

“build”: “webpack”,

“dev”: “webpack-dev-server –hot”

},

main.js

// ES6 中的模块化语法:

import $ from ‘jquery’

$(‘#list > li:odd’).css(‘background-color’, ‘#def’)

$(‘#list > li:even’).css(‘background-color’, ‘skyblue’)

// 导入css文件

import ‘./css/index.css’

1 运行了webpack的打包命令: webpack ./src/main.js –mode development

2 webpack 就会找到我们指定的入口文件 main.js

3 webpack 就会分析 main.js 中的代码, 当遇到 import $ …. 语法的时候, 那么, webpack

就知道,我们要使用 jQuery 这个模块

4 webpack 就会将jQuery模块的代码拿过来

5 然后,继续往后分析, 如果在遇到 import 语法, 继续加载这个模块 …

6 直到分析完成整个 JS 文件后, 将 main.js 中所有用到的模块代码 与 我们自己写的js代码

打包生成一个JS文件, 也就是 dist/main.js

webpack 配置文件的使用方式:

在项目根目录中创建配置文件: webpack.config.js

// 注意: 不要使用 ES6 中的模块化语法 import/export

const path = require(‘path’)

// const webpack = require(‘webpack’)

// 导入html-webpack-plugin

const HtmlWebpackPlugin = require(‘html-webpack-plugin’)

module.exports = {

// 入口

entry: path.join(__dirname, ‘./src/main.js’),

// 出口

output: {

path: path.join(__dirname, ‘./dist’),

filename: ‘bundle.js’

},

// 模式

mode: ‘development’,

devServer: {

// 自动打开浏览器

open: true,

// 修改端口号

port: 3000

// 热更新: 只将修改过得内容加载到页面中, 而不是刷新整个页面

// 第一步:

// hot: true

},

// 配置loader

module: {

rules: [

// test 是一个正则, 用来匹配加载文件的路径

// 比如: import ‘./css/index.css’

// use 表示使用哪个loader来处理这个类型的文件

// 注意: 有顺序!!!

// 处理过程是: 从右往左

// css-loader 读取CSS文件,将其转化为一个模块

// style-loader 拿到css-loader读取到的css文件内容,然后,创建一个style标签,插入到head

{ test: /\.css$/, use: [‘style-loader’, ‘css-loader’] }

]

},

plugins: [

// 第二步:

// new webpack.HotModuleReplacementPlugin(),

new HtmlWebpackPlugin({

// 指定模板文件路径

template: path.join(__dirname, ‘index.html’)

})

]

}

webpack-dev-server:

1 npm i -D webpack-dev-server

2 开启服务器

3 自动打开浏览器

4 监视文件变化, 自动刷新浏览器

// 使用步骤:

1 安装: npm i -D webpack-dev-server

2 在 webpack.config.js 中配置 devServer 配置项

3 在 package.json 中添加一个配置项: “dev”: “webpack-dev-server”

// webpack-dev-server 帮我们搭建了开发环境, 使用之后, 我们只需要写代码完成功能即可, 其他的所有内容, 这个插件都帮我们处理了

// webpack-dev-server 命令 和 webpack 命令的区别:

// 开发期间 webpack-dev-server

// 项目打包上线 webpack

// webpack 命令会生产 dist 文件夹

// webpack-dev-server 不会创建 dist 文件夹, 而是将所有内容放在内存中

html-webpack-plugin:

// 作用:

1 根据指定的模板页面(index.html)在内存中生产一个新的页面,并且,浏览器打开的就是生成的页面

2 能够自动引入 css/js 等文件

使用:

1 安装: npm i -D html-webpack-plugin

2 在 webpack.config.js 中导入这个模块

3 在 plugins 中配置

loader 加载器:

webpack 自身只能处理普通的JS文件, 而对于 非JS 文件, 都需要对应的 loader来进行特殊的处理.

也就是每种类型的文件, 都有自己专门的loader来处理,例如:

css文件,需要使用 style-loader css-loader

less文件,需要使用 style-loader css-loader less-loader

使用步骤:

1 安装: npm i -D style-loader css-loader

2 在 webpack.config.js 中的 module 里面配置loader处理规则

?

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/206498.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 下午3:33
下一篇 2026年3月19日 下午3:34


相关推荐

  • java接口中方法、属性修饰符详解「建议收藏」

    java接口中方法、属性修饰符详解「建议收藏」java接口的修饰符:abstract(inteeface本身就是抽象的,加不加abstract都一样)。接口中字段的修饰符:public static final(默认不写)如下解释:public: 使接口的实现类可以使用这个常量static:接口不涉及和任何具体实例相关的细节,因此接口没有构造方法,不能被实例化,没有实例变量,只有静态(static)变量。…

    2022年6月13日
    44
  • django+drf_haystack+elasticsearch+ik+高亮显示

    django+drf_haystack+elasticsearch+ik+高亮显示django drf haystack elasticsearc ik 高亮显示

    2026年3月17日
    3
  • Oracle账号——用于java JDK等软件的下载

    Oracle账号——用于java JDK等软件的下载目前在官网下载低于 jdk1 8 的 javajdk 的时候需要登陆 这边分享一个账号 方便下载 com 密码 Oracle123jav 下载地址 点击打开链接 javajdk 源码下载 http jdk java net 提醒 为了大伙的方便 请不要随便用该邮箱重新注册 Oracle 账号

    2026年3月20日
    2
  • C++虚函数表剖析

    C++虚函数表剖析关键词:虚函数,虚表,虚表指针,动态绑定,多态一、概述为了实现C++的多态,C++使用了一种动态绑定的技术。这个技术的核心是虚函数表(下文简称虚表)。本文介绍虚函数表是如何实现动态绑定的。二、类的虚表每个包含了虚函数的类都包含一个虚表。我们知道,当一个类(A)继承另一个类(B)时,类A会继承类B的函数的调用权。所以如果一个基类包含了虚函数,那么其继承类也可调用这些虚函数,换句话说,一个类继承了包

    2022年7月13日
    37
  • 秒杀多线程第四篇 一个经典的多线程同步问题

    秒杀多线程第四篇 一个经典的多线程同步问题

    2021年12月8日
    40
  • 0x80表示什么_0x38是多少

    0x80表示什么_0x38是多少0x800x是C语言中16进制数的表示方法。0x80等于十进制的1280×80在计算机内部表示为10000000字符在计算机中以其ASCII码方式表示, 其长度为1个字节,有符号字符型数取值范围为-128~127,无符号字符型数到值范围是0~255。因此在TurboC语言中,字符型数据在操作时将按整型数处理,如果某个变量定义成char,则表明该变量是

    2025年11月7日
    9

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号