webpack】弄清楚webpack 与vite的区别

简介: webpack】弄清楚webpack 与vite的区别

Webpack 与vite最大的不同,是在开发的时候,webpack 进行了模块转化。 Webpack的功能非常强大,比如模块打包、代码分割、按需加载、HMR、文件建ring、Tree-shaking、Sourcemap、MF、Dev Server、DLL、持久化缓存、Loader缓存等等
而Vite开发模式 unbundle, 因为浏览器原生支持esm,所以根本没做什么 bundle 操作,而是交给了浏览器。在生产的时候用才Rollup构建
原生ESM
先看看原生ESM支持的写法,比如,这种 js-examples,但是我实际运行的时候会碰到一个跨域问题
sql复制代码Access to script at 'file:///Users/nanlan/Documents/my-project/js-examples/module-examples/basic-modules/main.js' from origin 'null' has been blocked by CORS policy: Cross origin requests are only supported for protocol schemes: http, data, isolated-app, chrome-extension, chrome, https, chrome-untrusted.

报错原因是es6会受到同源策源的限制,所以需要通过HTTP或HTTPS协议从服务器加载你的脚本
js复制代码const express = require('express'); const app = express();
app.use(express.static('public')); // 'public'是你的静态文件(如HTML,JS,CSS等)所在的目录
app.listen(3000, () => console.log('Server is running on port 3000'));

然后运行localhost:3000就可以了
Webpack
在Webpack中,构建过程大概分为这么几个阶段初始化Init、构建Make、生成Seal

初始化阶段: 修整配置参数,创建 Compiler、Compilation 等基础对象,并初始化插件及若干内置工厂、工具类,并最终根据 entry 配置,找到所有入口模块
构建阶段: 从entry找到入口,调用loader转化为JS代码,调用Acorn 转化为AST结构,遍历 AST 找出模块依赖的模块;之后递归遍历所有依赖块,构建出 模块依赖关系图 (dependency graph)
生成阶段: 根据output的配置,将模块拆解成不同的chunk对象,经过一系列优化,再将代码翻译成产物

相关文章
|
2月前
|
前端开发 JavaScript Go
webpack -vite(Rollup )-Gulp (一)
webpack -vite(Rollup )-Gulp (一)
37 0
|
2月前
|
前端开发 JavaScript 开发者
如何在Vite和Webpack之间选择合适的构建工具?
【4月更文挑战第14天】选择Vite或Webpack取决于项目需求、团队熟悉度和场景。Vite适合快速开发,小到中型项目,Vue.js技术栈,有较简单的配置和快速冷启动。而Webpack在大型项目中占优,提供深度优化,丰富的插件生态系统,适合复杂构建需求和React项目。考虑因素还包括学习曲线和社区支持,最佳工具应满足项目当前及未来需求。
26 2
|
2月前
|
前端开发 JavaScript 开发者
vite和webpack区别
【4月更文挑战第14天】Vite与Webpack都是前端构建工具,各有特点。Vite凭借原冷启动和模块热更新,适合现代前端项目,尤其是Vue、React等。它的配置简单,但社区支持较小。相比之下,Webpack拥有强大的插件系统和广泛社区支持,能适应各种项目需求,但配置复杂,启动慢。开发者应根据项目需求选择合适的工具。
26 2
|
2月前
|
JavaScript 开发者
Vite和Webpack的区别是什么
Vite和Webpack的区别是什么
|
2月前
|
前端开发 JavaScript 容器
前端vw自适应解决方案,适用pc端以及移动端,适用webpack以及vite,适用vue以及react
前端vw自适应解决方案,适用pc端以及移动端,适用webpack以及vite,适用vue以及react
153 0
|
2月前
|
JSON 前端开发 JavaScript
Vite和Webpack区别
Vite和Webpack区别
52 0
|
2月前
|
JavaScript 应用服务中间件 nginx
nginx vue2+webpack 和 vue3+vite 配置二级目录访问
nginx vue2+webpack 和 vue3+vite 配置二级目录访问
198 0
|
资源调度 前端开发 JavaScript
wp2vite的妙用,让webpack项目支持vite
TNTWeb - 全称腾讯新闻前端团队,组内小伙伴在Web前端、NodeJS开发、UI设计、移动APP等大前端领域都有所实践和积累。 目前团队主要支持腾讯新闻各业务的前端开发,业务开发之余也积累沉淀了一些前端基础设施,赋能业务提效和产品创新。
940 0
wp2vite的妙用,让webpack项目支持vite
|
2月前
|
JavaScript 前端开发
webpack成长指北第9章---webpack如何对icon字体进行打包
webpack成长指北第9章---webpack如何对icon字体进行打包
59 1
|
2月前
|
前端开发 JavaScript
webpack成长指北第7章---webpack的css\less\scss样式打包
webpack成长指北第7章---webpack的css\less\scss样式打包
57 0