VUE 2.6.10 ├── scripts # 打包相关的配置文件,其中最重要的是config.js。主要是根据不一样的入口,打 包为不一样的文件。 ├── dist # 打包以后文件所在位置 ├── examples # demo示例 ├── flow # Vue使用了Flow来进行静态类型检查,这里定义了声明了一些静态类型 ├── packages # vue还能够分别生成其它的npm包 ├── src # 主要源码所在位置 ├── compiler # 编译相关 ├── codegen #根据ast生成render函数 ├── directives #通用生成render函数以前须要处理的指令 ├── parser #模板解析 ├── core # 核心代码 ├── components #全局的组件,这里只有keep-alive ├── global-api #全局方法,也就是添加在Vue对象上的方法,好比Vue.use,Vue.extend,,Vue.mixin等 ├── instance #实例相关内容,包括实例方法,生命周期,事件等 ├── observer #双向数据绑定相关文件 ├── util #工具方法 ├── vdom #虚拟dom相关 ├── platforms # 不一样平台的支持 ├── web #web端独有文件 ├── compiler #编译阶段须要处理的指令和模块 ├── runtime #运行阶段须要处理的组件、指令和模块 ├── server #服务端渲染相关 ├── util #工具库 ├── weex #weex端独有文件 ├── server # 服务端渲染 ├── sfc # vue 文件解析 ├── shared # 共享工具代码 ├── test # 测试用例
==主要源码所在位置Src==javascript
compiler
compiler 目录包含 Vue.js 全部编译相关的代码。它包括把模板解析成 ast 语法树,ast 语法树优化,代码生成等功能。html
编译的工做能够在构建时作(借助 webpack、vue-loader 等辅助插件);也能够在运行时作,使用包含构建功能的 Vue.js。显然,编译是一项耗性能的工做,因此更推荐前者——离线编译。
core
这里的代码可谓是 Vue.js 的灵魂,也是咱们以后须要重点分析的地方。vue
platform
咱们会重点分析 web 入口打包后的 Vue.js,对于 weex 入口打包的 Vue.js,感兴趣的同窗能够自行研究。java
server
Vue.js 2.0 支持了服务端渲染,全部服务端渲染相关的逻辑都在这个目录下。注意:这部分代码是跑在服务端的 Node.js,不要和跑在浏览器端的 Vue.js 混为一谈。webpack
服务端渲染主要的工做是把组件渲染为服务器端的 HTML 字符串,将它们直接发送到浏览器,最后将静态标记"混合"为客户端上彻底交互的应用程序。git
sfc
一般咱们开发 Vue.js 都会借助 webpack 构建, 而后经过 .vue 单文件来编写组件。github
这个目录下的代码逻辑会把 .vue 文件内容解析成一个 JavaScript 的对象。web
shared
引用: Vue.js 技术揭秘.npm