Webpack

(1)Entry:定义webpack打包的入口文件,可以是单个文件或多个文件。

(2)Output:定义打包后文件的输出位置和文件名。

(3)Loader:用于实现对不同类型的文件的加载和转换,例如将ES6的代码转换为ES5的代码。 (4)Plugin:用于扩展webpack的功能,例如压缩代码、拷贝文件等。

(5)Mode:指定webpack的构建模式,可以是development、production或none。

(6)Resolve:指定模块的解析规则,例如配置模块查找的路径、指定模块的别名等。

(7)DevServer:用于开发环境的配置,提供了一个简单的web服务器,并支持热模块替换

devtool

module:{ //配置loader

rules:[

test:'',

exclude:,

use:{

loader

}

]}

Plugin: clean-webpack-plugin、html-webpack-plugin、mini-css-extract-plugin、 optimize-css-assets-webpack-plugin (压缩css)、PurifyCSS(清除无用 css)、webpack-dev-server、workbox-webpack-plugin(PWA:服务挂了,缓存依旧可以访问)、add-asset-html-webpack-plugin(打包的文件注入到index.html)、webpack.DllReferencePlugin(DLLPlugin加速打包速度)

为浏览器加前缀:安装 postcss-loaderautoprefixer 依赖

处理图片:url-loader(字体、图片)、img-loader、image-webpack-loader(压缩图片)

生成雪碧图:postcss-loader postcss-sprites

Babel:babel-loader: 负责 ES6 语法转化。.babelrc

@babel/core、@babel/preset-env 和 @babel/plugin-transform-runtime、@babel/polyfill(转化新的j sAPI,例如Object.assign、Proxy、Reflect、Symbol、Promise)

.browserslistrc 兼容浏览器页面

处理第三方js。webpack.ProvidePlugin以及resolve下的alias

热更新模块:webpack.HotModuleReplacementPlugin()、webpack.NamedModulesPlugin(),顺序不能错、并且指定 devServer.hot 为 true

devServer 模块的底层是使用了 http-proxy-middleware

多页面配置entry引入多个

引入 webpack-merge 插件来合并配置、env区分环境

.eslintrc: 规范校验'eslint-loader'

Code Splitting

----lodash . 代码分割:4之前commonsChunkPlugin,4之后splitChunksPlugins

optimization: {splitChunks: {chunks: 'all'},cacheGroup:{commons}}, webpack 默认是 chunks: 'async' 分割异步代码

异步方式导入再写代码

return import('lodash').then(({ default: _ }) =>{

import(/* webpackChunkName: 'a'*/'./a').then(function(a){

Lazy loading、Prefetching 、Preloading

懒加载-点击页面时候异步加载输出, Preload 会和核心的代码并行加载

import(/* webpackChunkName: 'use-lodash'*/'lodash').then(function(_){

webpackPrefetch: true 等主要的 JS 都加载完了之后,网络带宽空闲的时候,它就会预先帮你加载好

import(/* webpackPrefetch: true */'./click.js').then(({ default: func })

webpackPreload: true 会和核心的代码并行加载,还是不推荐

import(/* webpackPreload: true */'./click.js').then(({ default: func })

PWA:

vite:

(1)编译器模块(Compiler Module):负责将源代码编译成可执行的代码。

(2)优化器模块(Optimizer Module):负责对编译后的代码进行优化,以提高性能和代码质量。(3)虚拟机模块(Virtual Machine Module):负责解释和执行编译后的代码。

(4)调试器模块(Debugger Module):负责提供调试功能,例如在代码运行过程中设置断点、查看变量值等。

(5)内存管理模块(Memory Management Module):负责对内存的分配和释放,以及对内存的管理和优化。

(6)文件系统模块(File System Module):负责对文件的读写操作,以及对文件的管理和优化。

(7)网络模块(Network Module):负责处理与网络相关的操作,例如发送和接收数据。

(8)用户界面模块(User Interface Module):负责提供用户界面,以便用户与程序进行交互。

(9)数据库模块(Database Module):负责对数据库进行操作,例如插入、更新、删除和查询数据等。

(10)安全模块(Security Module):负责提供安全功能,例如加密、解密和身份验证等。

相关推荐
名为沙丁鱼的猫7298 小时前
【审计日志组件实践复盘】前端工程化 + 后端DDD架构(AOP切面拦截日志) + MBG
前端·架构
xqqxqxxq8 小时前
AI智能旅游规划系统 - 前端技术笔记
前端·笔记·旅游
陈随易15 小时前
bm2,MoonBit实现的pm2替代品
前端·后端·程序员
To_OC15 小时前
从 0 到 1:Milvus + 大模型打造私人记忆知识库
人工智能·node.js·llm
a11177617 小时前
农业数字孪生大屏网页 html开源
前端·html
圣光SG17 小时前
web操作题练习(六)
前端
闪亮的路灯18 小时前
威联通QTS使用自带web服务期代理前端(类似nginx)
前端·nginx·威联通
kyriewen19 小时前
我用AI写了半年代码——回头看,这5个能力正在退化
前端·javascript·ai编程
IT_陈寒19 小时前
Vite静态资源路径这个坑差点让我加班到凌晨
前端·人工智能·后端
掘金酱20 小时前
「TRAE Work 实战帮」征文启动!你沉淀的经验,值得被看见!
前端·人工智能·后端