webpack-小滴课堂学习笔记
webpack简介
1.webpack是什么
简介:webpack其实就是一个JavaScript应用程序的静态模块打包器。
2.webpack有什么作用
模块化打包:webpack会将项目的资源文件当成一个一个模块,模块之间会有依赖关系,webpack将会对这些有依赖关系的文件进行处理,让浏览器能够识别,最后将应用程序需要的每个模块打包成一个或者多个bundle。
Webpack环境配置和简单打包
1.安装node
node官网地址: https://nodejs.org/zh-cn/
2.创建package.json文件
命令:npm init
3.安装webpack
本地安装:(推荐)
npm install --save-dev webpack webpack-cli
yarn add --dev webpack webpack-cli
全局安装:
npm install --global webpack webpack-cli
4.打包
默认entry入口 src/main.js
默认output出口 dist/main.js
打包模式:
webpack --mode development
webpack --mode production
Package.json文件下添加scripts:
设置好后在命令行程序中运行npm run dev或者npm run build来进行打包。
配置webpack.config.js
1.新建一个webpack.config.js
2.配置入口entry(所需打包的文件路径)
3.配置出口output
(1)path指文件打包后的存放路径
(2)path.resolve()方法将路径或路径片段的序列处理成绝对路径
(3)__dirname 表示当前文件所在的目录的绝对路径
(4)filename是打包后文件的名称
4.命令行程序运行npm run dev或者npm run build
入口entry和出口output进阶用法
1.入口entry
(1)单入口
例如: entry:‘./src/index.js’
(2)多入口
2.出口
(1)单出口
(2)多出口
[name] 原文件的名字
配置webopack-dev-server
1.了解webpack-dev-server
webpack-dev-server是webpack官方提供的一个小型express服务器。使用它可以为webpack打包生成的资源文件提供web服务。
webpack主要提供两个功能:
(1)为静态文件提供服务。把webpack打包生成的资源文件,部署到本地服务器。
(2)自动刷新和热替换(HMR)。
2.安装webpack-dev-server
yarn add --dev webpack-dev-server
3.配置webpack.config.js文件
4.配置package.json
"scripts": {
"start": "webpack-dev-server --mode development"
}
5.在build文件夹下新建index.html文件,在html中引入bundle.js
6.在命令行程序运行npm run start
自动弹出页面,控制台有输出信息
加载css所需loader及其使用方法
1.了解loader
loader让wepack能够去处理那些非javascript文件(webpack 自身只理解 JavaScript)。loader可以将所有类型的文件转换为webpack能够处理的有效模块,然后你就可以利用webpack的打包能力,对它们进行处理。
2.安装loader
安装style-loader和css-loader
yarn add --dev style-loader css-loader
3.配置loader
在webpack.config.js文件里配置module中的rules
在 webpack 的配置中 loader 有两个目标:
test 属性,用于标识出应该被对应的 loader 进行转换的某个或某些文件。
use 属性,表示进行转换时,应该使用哪个 loader。
代码:
4.创建css文件并运行命令
创建index.css文件并import进index.js文件中
5.编译less
(1)处理效果
(2)安装loader
yarn add less-loader less --dev
(3)配置loader
6.编译sass
(1)处理效果
(2)安装loader
yarn add sass-loader node-sass --dev
(3)配置loader
7.使用postcss处理浏览器前缀
(1)处理效果
(2)安装loader
安装postcss-loader和autoprefixer
yarn add --dev postcss-loader autoprefixer
(3)配置loader
需要和autoprefixer一起用
或者在package.json里加上下图设置:
文件处理
1.图片处理
(1)安装loader
下载安装file-loader: yarn add --dev file-loader
(2)配置config文件
(3)选项配置
配置options:
name:为你的文件配置自定义文件名模板(默认值[hash].[ext])
context:配置自定义文件的上下文,默认为 webpack.config.js
publicPath:为你的文件配置自定义 public 发布目录
outputPath:为你的文件配置自定义 output 输出目录
2.字体文件处理
(1)下载字体文件
以bootstrap字体文件为例子,Boostrap字体文件下载地址:https://v3.bootcss.com/getting-started/
(2)在index.js中引入bootstrap.css,在html中使用bootstrap字体图标
(3)配置config文件
3.第三方js库处理
以jquery库为例子
(1)本地导入
编写配置文件:
webpack.ProvidePlugin参数是键值对形式,键就是我们项目中使用的变量名,值就是键所指向的库。webpack.ProvidePlugin会先从npm安装的包中查找是否有符合的库。如果webpack配置了resolve.alias选项(理解成“别名”),那么webpack.ProvidePlugin就会顺着设置的路径一直找下去。
使用webpack.ProvidePlugin前需要引入webpack
(2)npm安装模块
安装jquery库:yarn add --dev jquery
直接在js里import引入: import $ from 'jquery'
编译ES6
(1) 了解babel
目前,ES6(ES2015)这样的语法已经得到很大规模的应用,它具有更加简洁、功能更加强大的特点,实际项目中很可能会使用采用了ES6语法的模块,但浏览器对于ES6语法的支持并不完善。为了实现兼容,就需要使用转换工具对ES6语法转换为ES5语法,babel就是最常用的一个工具。
babel转化语法所需依赖项:
babel-loader: 负责es6语法转化
babel-core: babel核心包
babel-preset-env: 告诉babel使用哪种转码规则进行文件处理
(2) 安装依赖
yarn add --dev babel-loader @babel/core @babel/preset-env
(3) 配置config文件
exclude表示不在指定目录查找相关文件
(4) 根目录新建 .babelrc 文件配置转换规则
(5) 另一种规则配置
使用html-webpack-plugin生成html
1.了解html-webpack-plugin
HtmlWebpackPlugin会自动为你生成一个HTML文件,根据指定的index.html模板生成对应的 html 文件。
根据src下的index.html自动在打包后的目录下生成html文件,相关引用关系和文件路径都会按照正确的配置被添加进生成的html里。
2.生成依赖
yarn add html-webpack-plugin --dev
3.配置config文件
提起分离css
1.处理效果
将所有的入口 chunk(entry chunks)中引用的 css,移动到独立分离的 CSS 文件
2.mini-css-extract-plugin插件
(1)安装(下载)
yarn add --dev mini-css-extract-plugin
(2)配置config文件
引入插件:
rules设置:
Plugins设置:
webpack-小滴课堂学习笔记的更多相关文章
- FPGA-VHDL课堂学习笔记*01
FPGA-VHDL课堂学习笔记 记录说明:本文档主要记录大学期间,老师FPGA授课课堂笔记. 代码语言:VHDL 编程软件:MAX+plus II FPGA硬件:FLE-843 03月05日 理论课 ...
- [原创] linux课堂-学习笔记-目录及概况
本学习笔记基于:网易云课堂-linux课堂 课时1Centos 6.4安装讲解46:14 课时2Centos 6.4桌面环境介绍与网络连接04:30 课时3 Linux目录结构介绍及内核与shell分 ...
- Webpack新手入门教程(学习笔记)
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; text-align: center; font: 30.0px Helvetica; color: #000000 } ...
- 2022-07-10 第五小组 pan小堂 css学习笔记
css学习笔记 什么是 CSS? CSS 指的是层叠样式表* (Cascading Style Sheets) CSS 描述了如何在屏幕.纸张或其他媒体上显示 HTML 元素 CSS 节省了大量工作. ...
- 微信小程序视频学习笔记
[清华大学]学做小程序 https://www.bilibili.com/video/av21987398 2.2创建项目和文件结构 小程序包含一个描述整体程序的app和多个描述各自页面的page 配 ...
- 第1-5章 慕课网微信小程序开发学习笔记
第1章 前言:不同的时代,不同的Web --微信小程序商城构建全栈应用 http://note.youdao.com/noteshare?id=a0e9b058853dbccf886c1a890594 ...
- 大步小步法(BSGS) 学习笔记
\(\\\) BSGS 用于求解关于 \(x\) 的方程: \[ a^x\equiv b\pmod p\ ,\ (p,a)=1 \] 一般求解的是模意义下的指数,也就是最小非负整数解. \(\\\) ...
- 小甲鱼Python学习笔记
一 isdigit()True: Unicode数字,byte数字(单字节),全角数字(双字节),罗马数字False: 汉字数字Error: 无 isdecimal()True: Unicode数字, ...
- JQuery课堂学习笔记
第1课 JQuery技术简介 <%@ page language="java" import="java.util.*" pageEncoding=&qu ...
- Ajax技术实战操练课堂学习笔记
ajax是什么 ? ajax(asynchronouse javascript and xml) 异步的javascript 和 xml 是7种技术的综合,它包含了七个技术( javascript x ...
随机推荐
- P8594 「KDOI-02」一个仇的复 题解
我会组合数! 首先发现同一列只有被不同的横块填或被一个相同的竖块填,且用竖块填完1列之后,会分成两个封闭的长方形,而长方形内部则用横块来填充. 先考虑一个子问题,某个 \(2 \times n\) 长 ...
- 生成模型的两大代表:VAE和GAN
生成模型 给定数据集,希望生成模型产生与训练集同分布的新样本.对于训练数据服从\(p_{data}(x)\):对于产生样本服从\(p_{model}(x)\).希望学到一个模型\(p_{model}( ...
- java中C3P0、Druid、HikariCP 、DBCP连接池的jar包下载与IDEA配置
## 一.什么是连接池连接池是应用程序与数据库之间的一个缓冲区,它存储了一定数量的空闲数据库连接,当应用程序需要连接数据库时,可以从连接池中获取一个可用连接,使用完毕后再将连接归还给连接池,从而避免了 ...
- MCube动态化与原生工程结合最佳实践
跨端动态化开发方案重要性日益凸显,本文对我们团队MCube动态化实践做了总结,为大家提供经验和借鉴. 接入背景 随着我们工程的需求迭代,暴露出了业务需求量大,分端开发和发版更新成本高等痛点,使用H5页 ...
- 算法那么多,AI量化交易策略如何选择最佳算法?
常见算法优劣比较 算法没有最好,只有更好. 这个问题的答案取决于许多因素,例如股票市场的条件,数据集的质量和特征工程的有效等.接下来,我们来看看这些算法的优势和劣势: 神经网络:适用于复杂的非线性问题 ...
- C++ 核心指南 —— 性能
C++ 核心指南 -- 性能 阅读建议:先阅读 <性能优化的一般策略及方法> 截至目前,C++ Core Guidelines 中关于性能优化的建议共有 18 条,而其中很大一部分是告诫你 ...
- Kernel Memory 入门系列:文档的管理
Kernel Memory 入门系列: 文档的管理 在Quick Start中我们了解到如何快速直接地上传文档.当时实际中,往往会面临更多的问题,例如文档如何更新,如何划定查询范围等等.这里我们将详细 ...
- 使用openfrp搭建网站[无公网ip]
使用openfrp搭建网站的理由 免费/低成本 安全 可扩展 使用条件 有一台低功耗准系统/服务器[无公网ip] u盘 网线/waif网卡 屏幕 使用方法 第1步准备服务 低功耗准系统 / 服务器 推 ...
- 3种方法,用Java找出两个List中的重复元素
本文分享自华为云社区<如何用Java找出两个List中的重复元素,读这一篇就够了>,作者: 努力的阿飞. 在Java编程中,我们经常需要找出两个列表(List)中的重复元素.在本文中,我们 ...
- docker镜像列表存在但删除显示 No such image问题解决
近期使用了docker,但删除镜像时候遇到了无法删除问题.提示:No such Image.原因有两个,解决方法如下: 原因1: 容器还存在是无法删除镜像的 解决步骤: 1.停掉容器(docker s ...