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

相关推荐
DN金猿16 分钟前
使用npm install或cnpm install报错解决
前端·npm·node.js
丘山子17 分钟前
一些鲜为人知的 IP 地址怪异写法
前端·后端·tcp/ip
志存高远6630 分钟前
Kotlin 的 suspend 关键字
前端
www_pp_42 分钟前
# 构建词汇表:自然语言处理中的关键步骤
前端·javascript·自然语言处理·easyui
layman05281 小时前
node.js 实战——(Http 知识点学习)
http·node.js
2501_915373881 小时前
Node.js 学习入门指南
学习·node.js
天天扭码1 小时前
总所周知,JavaScript中有很多函数定义方式,如何“因地制宜”?(ˉ﹃ˉ)
前端·javascript·面试
一个专注写代码的程序媛1 小时前
为什么vue的key值,不用index?
前端·javascript·vue.js
장숙혜2 小时前
ElementUi的Dropdown下拉菜单的详细介绍及使用
前端·javascript·vue.js
火柴盒zhang2 小时前
websheet之 编辑器
开发语言·前端·javascript·编辑器·spreadsheet·websheet