Vite和Webpack的核心差异

819次阅读  |  发布于3年以前

写在开头

全方位对比vite和webpack

webpack打包过程
webpack打包原理

重点:这里需要递归识别依赖,构建依赖图谱。图谱对象就是类似下面这种

{ './app.js':
   { dependencies: { './test1.js': './test1.js' },
     code:
      '"use strict";\n\nvar _test = _interopRequireDefault(require("./test1.js"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }\n\nconsole.log(test
1);' },
  './test1.js':
   { dependencies: { './test2.js': './test2.js' },
     code:
      '"use strict";\n\nvar _test = _interopRequireDefault(require("./test2.js"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }\n\nconsole.log(\'th
is is test1.js \', _test["default"]);' },
  './test2.js':
   { dependencies: {},
     code:
      '"use strict";\n\nObject.defineProperty(exports, "__esModule", {\n  value: true\n});\nexports["default"] = void 0;\n\nfunction test2() {\n  console.log(\'this is test2 \');\n}\n\nvar _default = tes
t2;\nexports["default"] = _default;' } } 

vite原理

如:

 <script type="module" src="/src/main.js"></script>
http://localhost:3000/src/main.js请求main.js文件:

// /src/main.js:
import { createApp } from 'vue'
import App from './App.vue'
createApp(App).mount('#app')
webpack缺点一。缓慢的服务器启动
vite改进
webpack缺点2.使用的是node.js去实现

vite改进
webpack致命缺点3.热更新效率低下
vite改进
vite缺点1.生态,生态,生态不如webpack
vite缺点2.prod环境的构建,目前用的Rollup
vite缺点3.还没有被大规模使用,很多问题或者诉求没有真正暴露出来

总结

Copyright© 2013-2020

All Rights Reserved 京ICP备2023019179号-8