vue1.0.9版本用rollup替换webpack
目前,vue2、vue3源码都是rollup打包,为什么?
尤大大解释原文:
作者:尤雨溪
链接:https://www.zhihu.com/question/37861778/answer/73847503
rollup 只是用于 Vue 发布文件的构建,对用户使用没有直接影响。
之前用 webpack 打包,还是会自带一个小型的动态 module 加载机制,并且每个文件是包在一个模块函数里的。
rollup 打包通过重命名 import binding 直接把所有文件的函数都放在同一个函数体里面。
所以最终出来的文件会小一些,并且初始化快个十几毫秒的样子。
1.0.10 以后 npm 包里包含的是:
- dist/vue.common.js - 一个 rollup 构建后的单个 CommonJS 文件,package.json 里面的 main 指向这里。用 Webpack 或是 Browserify 打包,获取到的是这个文件。
- dist/vue.js 和 dist/vue.min.js - 构建后的可直接用于 <script> 引用的文件。
- src - 源文件,ES6(目前只用了模块语法)- package.json 的 esnext:main 指向 src/index.js。用 jspm 或是 rollup 打包,获取的是 ES6 的源文件。
想起来,对于用户来说有一个实际变化就是没有办法再用 require(‘vue/src/xxx’) 的方式直接获取 Vue 内部的模块,不过本来就不推荐这样做。