zoukankan      html  css  js  c++  java
  • vue.js 贡献指南(翻译)

    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:类型定义测试

  • 相关阅读:
    ABS(引数と同じ大きさの正の数を返す)
    WRITE
    LEAVE TO LIST-PROCESSING
    SHIFT(文字列の指定位置数の移動)
    【EXCEL】SUMIF(条件を指定して数値を合計する)
    【EXCEL】SUMIFS(複数の条件を指定して数値を合計する)
    【財務会計】流動資産と固定資産の違いとは?ディズニーを例にわかりやすく解説
    【財務会計】償却 とは
    【財務会計】固定資産の除却と廃棄の違い
    尽力去做你力所能及的事
  • 原文地址:https://www.cnblogs.com/nightstarsky/p/10098514.html
Copyright © 2011-2022 走看看