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):负责提供安全功能,例如加密、解密和身份验证等。

相关推荐
拉不动的猪6 分钟前
单点登录全流程小姐
前端·javascript·面试
菜鸟小九13 分钟前
html、css(javaweb第一天)
前端·css·html
y东施效颦32 分钟前
uni-app页面发布测试环境出现连接服务器超时,点击屏幕重试解决方案
前端·javascript·vue.js·uni-app·vue
大熊程序猿36 分钟前
《开篇:课程目录》
前端·c#
摸鱼仙人~1 小时前
React中子传父组件通信操作指南
前端·javascript·react.js
程序员阿超的博客1 小时前
React事件处理:如何给按钮绑定onClick点击事件?
前端·javascript·react.js
沉香亭北2 小时前
vue+vite 全局主题
前端
郑州小张2 小时前
前端解析PDF文件目录以及点击目录实现对应内容预览
前端·javascript
海底火旺2 小时前
探索扣子:解锁中间技能模块的无限可能
前端·人工智能·coze
Amctwd2 小时前
【HTML】HTML 与 CSS 基础教程
前端·css·html