Vue源码学习(一)

今天开始学习Vue源码,顺便不定时记录下
从github上clone源码(地址为:https://github.com/vuejs/vue)
此时版本为2.6.10,可以看到尤大大6天前的提交

参照以下贡献规则文档:https://github.com/vuejs/vue/blob/dev/.github/CONTRIBUTING.md#project-structure,对项目结构进行初步理解

项目结构

项目结构

  • scripts:包含与构建相关的脚本和配置文件。一般不需要动它们。但是熟悉以下js会很有帮助:

    • scripts/alias.js:模块导入别名用于所有源代码和测试。

    • scripts/config.js:包含在中找到的所有文件的构建配置dist/。如果要查找dist文件的条目源文件,请查阅此文件。

  • dist:包含构建后的文件的输出目录。请注意,此目录仅在构建时更新; 它们没有反映开发分支的最新变化。

    有关dist文件的更多详细信息,请参阅dist / README.md

  • flow:包含类型声明。这些声明是全局加载的,您将在普通源代码中看到它们在类型注释中使用。

  • packages:contains vue-server-renderervue-template-compiler,它们作为单独的NPM包分发。它们是从源代码自动生成的,并且始终与主程序vue包具有相同的版本。

  • test:包含所有测试文件。unit测试用Jasmine编写并与Karma一起运行。e2e测试是为Nightwatch.js编写并运行的。

  • src:包含源代码,使用的事ES6

    • compiler:编译器代码的存放目录,将 template 编译为 render 函数

    • core:包含通用的,与平台无关的运行时代码。

      • observer:反应系统,包含数据观测的核心代码

      • vdom:包含虚拟DOM创建(creation)和打补丁(patching)的代码

      • instance:包含Vue构造函数设计相关的代码

      • global-api:包含给Vue构造函数挂载全局方法(静态方法)或属性的代码

      • components:包含抽象出来的通用组件

    • server:包含服务端渲染(server-side rendering)的相关代码

    • platforms:包含平台特有的相关代码

    • sfc:包含单文件组件(.vue文件)的解析逻辑,用于vue-template-compiler包

    • shared:包含整个代码库通用的代码

    • types:包含TypeScript类型定义

      • test:包含类型定义测试

常用的NPM指令

# watch and auto re-build dist/vue.js
$ npm run dev

# watch and auto re-run unit tests in Chrome
$ npm run dev:test

# build all dist files, including npm packages
$ npm run build

# run the full test suite, include linting/type checking
$ npm test

有了大致的了解之后,

我们安装项目所依赖的包

npm install

等待下载完所有包之后,

执行 

npm run dev

就可以在dist中看到生成的vue.js文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值