Vue.js Contributing Guide

vue 2.x

嗨! 我很高兴你有兴趣为Vue.js做贡献。 在提交您的贡献之前,请务必花点时间阅读以下指南。

行为守则

问题报告指南

PR指南

开发设置

项目结构

Issue Reporting Guidelines

总是使用 https://new-issue.vuejs.org/ 来创建新的问题

Pull Request Guidelines

master分支基本上只是最新稳定版本的快照。 所有开发都应该在专门的分支中完成。不要向主分支提交PR。

从相关分支中签出主题分支,例如 dev,并合并回该分支。

在SRC文件夹中工作,不要在提交中签入DIST。

当处理PR时,可以进行多次小型提交 - 我们将让GitHub在合并之前自动压缩它。

确保 npm test 通过。

如果添加新功能:

  添加随同的测试用例。

提供令人信服的理由来添加此功能。 理想情况下,您应首先打开一个建议问题,并在处理之前将其置于绿灯。

如果修复一个bug:

如果要解决一个特定的 issue,请在PR标题中添加(fix#xxx[,#xxx])(#xxxx是问题id)以便获得更好的发布日志,例如 update entities encoding/decoding (fix #3899)。

在PR中提供bug的详细说明。 最好有demo。

如果适用,添加适当的测试范围

Development Setup

你需要 node.js 6 以上版本,和Java运行时环境(在E2E测试期间运行 Selenium server 所需的环境)。

克隆后运行:

$ npm install # or yarn install

Committing Changes  提交更改

提交消息应该遵循提交消息约定,以便能够自动生成更改日志。提交消息将在提交时自动验证。如果您不熟悉提交消息约定,可以使用 npm run commit 代替 git commit,该命令提供了一个交互式CLI,用于生成适当的提交消息。

package.json文件的 scripts 选项中提供了一些其他的可选脚本。

默认测试脚本将执行以下操作:lint with ESLint  - > type check with Flow  - > unit tests with coverage  - > e2e tests。 在提交PR之前,请确保成功通过此通行证。 虽然将在CI服务器上针对您的PR运行相同的测试,但最好让它事先在本地工作。

Project Structure

scripts:包含与构建相关的脚本和配置文件。在大多数情况下,你不需要接触它们。但是,熟悉下列文件会有帮助:

scripts/alias.js: 在所有源代码和测试中使用的模块导入别名。

scripts/config.js: 包含在 dist 文件夹中所有文件的构建配置。 如果想要找出一个dist文件的的入口源文件,请从这个文件查找。

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

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

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

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

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

src: 显然包含源代码。 代码库是使用ES2015编写并用Flow类型注释的。

compiler: 包含 template-to-render-function 编译器的代码。

编译器包括一个解析器(将模板字符串转换为元素AST),一个优化器(检测用于vdom渲染优化的静态树)和一个代码生成器(从元素AST生成渲染函数代码)。 请注意,codegen直接从元素AST生成代码字符串 - 它以较小的代码大小完成,因为在独立构建中,编译器被传送给浏览器。

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

Vue 2.0核心代码与平台无关 - 这意味着内核中的代码应该能够在任何JavaScript环境中运行,无论是浏览器,Node.js还是本机应用程序中的嵌入式JavaScript运行时。

observer: 包含与响应性系统相关的代码。

vdom:包含与vdom元素创建和修补相关的代码。

instance: 包含Vue实例构造函数和原型方法。

global-api:  顾名思义。

components: 通用抽象组件。 目前只有keep-alive。

server: 包含服务器端渲染的相关代码。

platforms: 包含特定平台的代码。

dist构建的入口文件位于各自的平台目录中。

每个平台模块包含三个部分:编译器,运行时和服务端,对应于上面的三个目录。 每个部分都包含特定于平台的模块/实用程序,然后将其导入并注入特定于平台的核心对应部分的入口文件中。 例如,实现v-bind:class背后的逻辑的代码位于platforms / web / runtime / modules / class.js中 - 它在entries / web-runtime.js中导入,用于创建针对浏览器的vdom修补函数。

sfc: 包含单文件组件(*.vue文件)解析逻辑。这在 vue-template-compiler 包中使用。

shared: 包含在整个代码库中共享的实用程序。

types: 包含TypeScript类型定义

test:类型定义测试

vue.js 贡献指南(翻译)的更多相关文章

  1. 【vue.js权威指南】读书笔记(第一章)

    最近在读新书<vue.js权威指南>,一边读,一边把笔记整理下来,方便自己以后温故知新,也希望能把自己的读书心得分享给大家. [第1章:遇见vue.js] vue.js是什么? vue.j ...

  2. Vue.js 入门指南之“前传”(含sublime text 3 配置)

    题记:关注Vue.js 很久了,但就是没有动手写过一行代码,今天准备入手,却发现自己比菜鸟还菜,于是四方寻找大牛指点,才终于找到了入门的“入门”,就算是“入门指南”的“前传”吧.此文献给跟我一样“白痴 ...

  3. 【vue.js权威指南】读书笔记(第二章)

    [第2章:数据绑定] 何为数据绑定?答曰:数据绑定就是将数据和视图相关联,当数据发生变化的时候,可以自动的来更新视图. 数据绑定的语法主要分为以下几个部分: 文本插值:文本插值可以说是最基本的形式了. ...

  4. Vue.js入门指南(一)

      前  言 JRedu 之前用过一段时间的AnglarJS 1.X,在低版本的AngularJS中,脏值检查在变量增多的情况下会影响程序的响应速度.后期的2.X和更高版本在脏值检查等问题上做了优化, ...

  5. Vue.js 入门指南

    1.Vue.js是什么? Vue.js(读音 /vjuː/, 类似于 view) 是一套构建用户界面的 渐进式框架.与其他重量级框架不同的是,Vue 采用自底向上增量开发的设计.Vue 的核心库只关注 ...

  6. vue.js权威指南----代码解释实例

    1:P61(值绑定) <input type="checkbox" v-model="toggle" :true-value="a" ...

  7. vue.js权威指南 PDF

    链接:https://pan.baidu.com/s/1c2ItN6S 密码:ya8r

  8. vue.js入门(3)——组件通信

    5.2 组件通信 尽管子组件可以用this.$parent访问它的父组件及其父链上任意的实例,不过子组件应当避免直接依赖父组件的数据,尽量显式地使用 props 传递数据.另外,在子组件中修改父组件的 ...

  9. vue.js慢速入门(2)

    4.组件使用基础 什么是组件?组件可以理解为可重用的自定义HTML. 可以使用一堆组件来构造大型应用,任意类型的应用界面都可以抽象为一个组件树: 可以把组件代码按照template.style.scr ...

随机推荐

  1. 透彻详解(3)旁路电容100nF_0.1uF的由来计算

    原文地址点击这里: 前一节我们已经详细解释了旁路电容在数字电路系统中所起的基本且重要作用,即储能与为高频噪声电流提供低阻抗路径,尽管还并未给旁路电容的这些功能概括一个"高大上"的名 ...

  2. 分布式AKF拆分原则

    1. 前言 当我们需要分布式系统提供更强的性能时,该怎样扩展系统呢?什么时候该加机器?什么时候该重构代码?扩容时,究竟该选择哈希算法还是最小连接数算法,才能有效提升性能? 在面对 Scalabilit ...

  3. 时光卷轴,Microsoft大事记

    Our mission is to empower every person and every organization on the planet to achieve more. 2021年6月 ...

  4. Pytest学习笔记10-生成html报告

    前言 在pytest中,如何生成html测试报告呢,pytest提供了pytest-html插件,可以帮助我们生成测试报告,当然,如果希望生成更加精美的测试报告,我们还可以使用allure生成报告,下 ...

  5. 103、kickstart自动化安装操作系统

    103.1.前言: 作为中小公司的运维,经常会遇到一些机械式的重复工作,例如:有时公司同时上线几十甚至上百台服务器,而且需要我们在短时间内完成系统安装. 常规的办法有: 光盘安装系统===>一个 ...

  6. 4、oracle表操作

    4.1.dml操作: 1.查看当前用户下所有的表: select * from user_tables; 2.查看某表的大小: select sum(bytes)/(1024*1024) as &qu ...

  7. 18、mysql读写分离实现的方法

    18.1.mysql读写分离实现的方法: 1.通过程序实现读写分离: php和java程序实现读写分离(性能,效率最佳,推荐); php和java程序都可以通过设置多个连接文件轻松实现对数据库的读写分 ...

  8. flex发生错误积累。每次遇到错误记录一点点

    error #2044: 未处理的 ioerrorevent: text=error #2036: 加载未完成 出现这个问题,因为我是要实现图片编辑裁剪,然后上传.没有上传成功,出现上面的这个错误, ...

  9. 万字长文肝Git--全流程知识点包您满意【建议收藏】

    您好,我是码农飞哥,感谢您阅读本文,欢迎一键三连哦. 本文将首先介绍在本地搭建GitLab服务,然后重点介绍Git的常用命令,Git的核心概念以及冲突处理,最后介绍Git与SVN的区别 干货满满,建议 ...

  10. bugku crypto wp上半部分汇总

    1.滴答~滴 摩斯码,在线解开. 2. 栅栏密码,在线解就出flag了. 3. Ook解密,由.?!Ook组成密文,在线网站解密 4.这不是摩斯密码 有点像jsfuck,发现又不是,因为不会出现大于号 ...