1. 构建原理:
Webpack 是一个静态模块打包器,通过对项目中的JavaScript、css、Image 等文件进行分析,生成对应的静态资源,并且通过一些插件和加载器来实现各种功能。
Vite 是一种基于浏览器元素 ES 模块解析构建工具,它通过在服务器端搭建开发环境,在浏览器中使用原生ES模块的方式实现快速开发体验。
2. 打包速度:
Webpack 的打包速度相对较慢,在大型项目中,需要对整个项目进行扫描和分析,还需要通过插件和加载器来实现各种功能,隐藏构建时间往往比较长。
Vite 的打包速度非常快,不需要对整个项目进行扫描和分析,而是通过服务器端搭建的开发环境,在浏览器中使用原生ES模块的方式加载文件,因此构建时间比webpack快数倍。
3. 配置难度
Webpack 有大量的插件和加载器可以使用,可以实现各种复杂的构建场景,比如代码分隔、按需加载、CSS预处理器等。
Vite 的插件和加载器相对较少,但提供了一些基本插件,例如:Vue.js、React 等框架支持。
babel
- var valid = function(s) {
- const stack = [];
- for (let i = 0; i < s.length; i++) {
- let c = s[i];
- switch (c) {
- case '(':
- stack.push(')');
- break;
- case '[':
- stack.push(']');
- break;
- case '{':
- stack.push('}');
- break;
- default:
- if(c !== stack.pop()) {
- return false;
- }
- }
- }
- return stack.length === 0;
- };