diff --git a/.babelrc b/.babelrc deleted file mode 100644 index 605b14091c4..00000000000 --- a/.babelrc +++ /dev/null @@ -1,8 +0,0 @@ -{ - "presets": ["es2015", "flow-vue"], - "plugins": ["transform-vue-jsx", "syntax-dynamic-import"], - "ignore": [ - "dist/*.js", - "packages/**/*.js" - ] -} diff --git a/.babelrc.js b/.babelrc.js new file mode 100644 index 00000000000..400866bfa7e --- /dev/null +++ b/.babelrc.js @@ -0,0 +1,23 @@ +const babelPresetFlowVue = { + plugins: [ + require('@babel/plugin-proposal-class-properties'), + // require('@babel/plugin-syntax-flow'), // not needed, included in transform-flow-strip-types + require('@babel/plugin-transform-flow-strip-types') + ] +} + +module.exports = { + presets: [ + require('@babel/preset-env'), + // require('babel-preset-flow-vue') + babelPresetFlowVue + ], + plugins: [ + require('babel-plugin-transform-vue-jsx'), + require('@babel/plugin-syntax-dynamic-import') + ], + ignore: [ + 'dist/*.js', + 'packages/**/*.js' + ] +} diff --git a/.circleci/config.yml b/.circleci/config.yml index 0c5f49e158d..9075ab237c9 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -3,7 +3,7 @@ version: 2 defaults: &defaults working_directory: ~/project/vue docker: - - image: circleci/node:6-browsers + - image: vuejs/ci jobs: install: @@ -12,12 +12,12 @@ jobs: - checkout - restore_cache: keys: - - v1-vue-{{ .Branch }}-{{ checksum "package-lock.json" }} + - v1-vue-{{ .Branch }}-{{ checksum "yarn.lock" }} - v1-vue-{{ .Branch }}- - v1-vue- - run: npm install - save_cache: - key: v1-vue-{{ .Branch }}-{{ checksum "package-lock.json" }} + key: v1-vue-{{ .Branch }}-{{ checksum "yarn.lock" }} paths: - node_modules/ - persist_to_workspace: @@ -44,7 +44,7 @@ jobs: name: report coverage stats for non-PRs command: | if [[ -z $CI_PULL_REQUEST ]]; then - cat ./coverage/lcov.info | ./node_modules/.bin/codecov + ./node_modules/.bin/codecov fi test-e2e: @@ -62,6 +62,16 @@ jobs: - run: npm run test:ssr - run: npm run test:weex + trigger-regression-test: + <<: *defaults + steps: + - run: + command: | + curl --user ${CIRCLE_TOKEN}: \ + --data build_parameters[CIRCLE_JOB]=update \ + --data build_parameters[VUE_REVISION]=${CIRCLE_SHA1} \ + https://circleci.com/api/v1.1/project/github/vuejs/regression-testing/tree/master + workflows: version: 2 install-and-parallel-test: @@ -79,3 +89,43 @@ workflows: - test-ssr-weex: requires: - install + - trigger-regression-test: + filters: + branches: + only: + - "2.6" + - regression-test + requires: + - test-cover + - lint-flow-types + - test-e2e + - test-ssr-weex + weekly_regression_test: + triggers: + - schedule: + # At 13:00 UTC (9:00 EDT) on every Monday + cron: "0 13 * * 1" + filters: + branches: + only: + dev + jobs: + - install + - test-cover: + requires: + - install + - lint-flow-types: + requires: + - install + - test-e2e: + requires: + - install + - test-ssr-weex: + requires: + - install + - trigger-regression-test: + requires: + - test-cover + - lint-flow-types + - test-e2e + - test-ssr-weex diff --git a/.editorconfig b/.editorconfig index f1cc3ad329c..01a20f16fe3 100644 --- a/.editorconfig +++ b/.editorconfig @@ -1,4 +1,4 @@ -# http://editorconfig.org +# https://editorconfig.org root = true diff --git a/.eslintrc b/.eslintrc deleted file mode 100644 index f5845425106..00000000000 --- a/.eslintrc +++ /dev/null @@ -1,14 +0,0 @@ -{ - "root": true, - "plugins": [ - "flowtype" - ], - "extends": [ - "plugin:vue-libs/recommended", - "plugin:flowtype/recommended" - ], - "globals": { - "__WEEX__": true, - "WXEnvironment": true - } -} diff --git a/.eslintrc.js b/.eslintrc.js new file mode 100644 index 00000000000..e27aad552a1 --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1,29 @@ +module.exports = { + root: true, + parserOptions: { + parser: require.resolve('babel-eslint'), + ecmaVersion: 2018, + sourceType: 'module' + }, + env: { + es6: true, + node: true, + browser: true + }, + plugins: [ + "flowtype" + ], + extends: [ + "eslint:recommended", + "plugin:flowtype/recommended" + ], + globals: { + "__WEEX__": true, + "WXEnvironment": true + }, + rules: { + 'no-console': process.env.NODE_ENV !== 'production' ? 0 : 2, + 'no-useless-escape': 0, + 'no-empty': 0 + } +} diff --git a/.github/CODE_OF_CONDUCT.md b/.github/CODE_OF_CONDUCT.md index 4ead0e1daf2..b39f08e2d28 100644 --- a/.github/CODE_OF_CONDUCT.md +++ b/.github/CODE_OF_CONDUCT.md @@ -2,7 +2,7 @@ As contributors and maintainers of this project, we pledge to respect all people who contribute through reporting issues, posting feature requests, updating documentation, submitting pull requests or patches, and other activities. -We are committed to making participation in this project a harassment-free experience for everyone, regardless of level of experience, gender, gender identity and expression, sexual orientation, disability, personal appearance, body size, race, age, or religion. +We are committed to making participation in this project a harassment-free experience for everyone, regardless of the level of experience, gender, gender identity and expression, sexual orientation, disability, personal appearance, body size, race, age, or religion. Examples of unacceptable behavior by participants include the use of sexual language or imagery, derogatory comments or personal attacks, trolling, public or private harassment, insults, or other unprofessional conduct. diff --git a/.github/COMMIT_CONVENTION.md b/.github/COMMIT_CONVENTION.md index 6d2813fb663..381bf17baab 100644 --- a/.github/COMMIT_CONVENTION.md +++ b/.github/COMMIT_CONVENTION.md @@ -1,13 +1,13 @@ ## Git Commit Message Convention -> This is adapted from [Angular's commit convention](https://github.com/conventional-changelog/conventional-changelog/blob/master/packages/conventional-changelog-angular/convention.md). +> This is adapted from [Angular's commit convention](https://github.com/conventional-changelog/conventional-changelog/tree/master/packages/conventional-changelog-angular). #### TL;DR: Messages must be matched by the following regex: ``` js -/^(revert: )?(feat|fix|docs|style|refactor|perf|test|workflow|ci|chore|types)(\(.+\))?: .{1,50}/ +/^(revert: )?(feat|fix|polish|docs|style|refactor|perf|test|workflow|ci|chore|types)(\(.+\))?: .{1,50}/ ``` #### Examples @@ -58,24 +58,24 @@ The **header** is mandatory and the **scope** of the header is optional. ### Revert -If the commit reverts a previous commit, it should begin with `revert: `, followed by the header of the reverted commit. In the body it should say: `This reverts commit .`, where the hash is the SHA of the commit being reverted. +If the commit reverts a previous commit, it should begin with `revert: `, followed by the header of the reverted commit. In the body, it should say: `This reverts commit .`, where the hash is the SHA of the commit being reverted. ### Type -If the prefix is `feat`, `fix` or `perf`, it will appear in the changelog. However if there is any [BREAKING CHANGE](#footer), the commit will always appear in the changelog. +If the prefix is `feat`, `fix` or `perf`, it will appear in the changelog. However, if there is any [BREAKING CHANGE](#footer), the commit will always appear in the changelog. Other prefixes are up to your discretion. Suggested prefixes are `docs`, `chore`, `style`, `refactor`, and `test` for non-changelog related tasks. ### Scope -The scope could be anything specifying place of the commit change. For example `core`, `compiler`, `ssr`, `v-model`, `transition` etc... +The scope could be anything specifying the place of the commit change. For example `core`, `compiler`, `ssr`, `v-model`, `transition` etc... ### Subject -The subject contains succinct description of the change: +The subject contains a succinct description of the change: * use the imperative, present tense: "change" not "changed" nor "changes" -* don't capitalize first letter +* don't capitalize the first letter * no dot (.) at the end ### Body diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index a5b9f985b6e..5368b5481bc 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -1,6 +1,6 @@ # Vue.js Contributing Guide -Hi! I’m really excited that you are interested in contributing to Vue.js. Before submitting your contribution though, please make sure to take a moment and read through the following guidelines. +Hi! I'm really excited that you are interested in contributing to Vue.js. Before submitting your contribution, please make sure to take a moment and read through the following guidelines: - [Code of Conduct](https://github.com/vuejs/vue/blob/dev/.github/CODE_OF_CONDUCT.md) - [Issue Reporting Guidelines](#issue-reporting-guidelines) @@ -14,33 +14,33 @@ Hi! I’m really excited that you are interested in contributing to Vue.js. Befo ## Pull Request Guidelines -- The `master` branch is basically just a snapshot of the latest stable release. All development should be done in dedicated branches. **Do not submit PRs against the `master` branch.** +- The `master` branch is just a snapshot of the latest stable release. All development should be done in dedicated branches. **Do not submit PRs against the `master` branch.** - Checkout a topic branch from the relevant branch, e.g. `dev`, and merge back against that branch. - Work in the `src` folder and **DO NOT** checkin `dist` in the commits. -- It's OK to have multiple small commits as you work on the PR - we will let GitHub automatically squash it before merging. +- It's OK to have multiple small commits as you work on the PR - GitHub will automatically squash it before merging. - Make sure `npm test` passes. (see [development setup](#development-setup)) -- If adding new feature: +- If adding a new feature: - Add accompanying test case. - - Provide convincing reason to add this feature. Ideally you should open a suggestion issue first and have it greenlighted before working on it. + - Provide a convincing reason to add this feature. Ideally, you should open a suggestion issue first and have it approved before working on it. -- If fixing a bug: - - If you are resolving a special issue, add `(fix #xxxx[,#xxx])` (#xxxx is the issue id) in your PR title for a better release log, e.g. `update entities encoding/decoding (fix #3899)`. - - Provide detailed description of the bug in the PR. Live demo preferred. +- If fixing bug: + - If you are resolving a special issue, add `(fix #xxxx[,#xxxx])` (#xxxx is the issue id) in your PR title for a better release log, e.g. `update entities encoding/decoding (fix #3899)`. + - Provide a detailed description of the bug in the PR. Live demo preferred. - Add appropriate test coverage if applicable. ## Development Setup -You will need [Node.js](http://nodejs.org) **version 6+** and [Java Runtime Environment](http://www.oracle.com/technetwork/java/javase/downloads/index.html) (needed for running Selenium server during e2e tests). +You will need [Node.js](http://nodejs.org) **version 8+**, [Java Runtime Environment](http://www.oracle.com/technetwork/java/javase/downloads/index.html) (for running Selenium server during e2e tests) and [yarn](https://yarnpkg.com/en/docs/install). After cloning the repo, run: ``` bash -$ npm install # or yarn +$ yarn # install the dependencies of the project ``` ### Committing Changes @@ -59,17 +59,17 @@ $ npm run dev:test # build all dist files, including npm packages $ npm run build -# run the full test suite, include linting / type checking +# run the full test suite, including linting/type checking $ npm test ``` There are some other scripts available in the `scripts` section of the `package.json` file. -The default test script will do the following: lint with ESLint -> type check with Flow -> unit tests with coverage -> e2e tests. **Please make sure to have this pass successfully before submitting a PR.** Although the same tests will be run against your PR on the CI server, it is better to have it working locally beforehand. +The default test script will do the following: lint with ESLint -> type check with Flow -> unit tests with coverage -> e2e tests. **Please make sure to have this pass successfully before submitting a PR.** Although the same tests will be run against your PR on the CI server, it is better to have it working locally. ## Project Structure -- **`scripts`**: contains build-related scripts and configuration files. In most cases you don't need to touch them. However, it would be helpful to familiarize yourself with the following files: +- **`scripts`**: contains build-related scripts and configuration files. Usually, you don't need to touch them. However, it would be helpful to familiarize yourself with the following files: - `scripts/alias.js`: module import aliases used across all source code and tests. @@ -85,15 +85,15 @@ The default test script will do the following: lint with ESLint -> type check wi - **`test`**: contains all tests. The unit tests are written with [Jasmine](http://jasmine.github.io/2.3/introduction.html) and run with [Karma](http://karma-runner.github.io/0.13/index.html). The e2e tests are written for and run with [Nightwatch.js](http://nightwatchjs.org/). -- **`src`**: contains the source code, obviously. The codebase is written in ES2015 with [Flow](https://flowtype.org/) type annotations. +- **`src`**: contains the source code. The codebase is written in ES2015 with [Flow](https://flowtype.org/) type annotations. - **`compiler`**: contains code for the template-to-render-function compiler. - The compiler consists of a parser (converts template strings to element ASTs), an optimizer (detects static trees for vdom render optimization), and a code generator (generate render function code from element ASTs). Note the codegen directly generates code strings from the element AST - it's done this way for smaller code size because the compiler is shipped to the browser in the standalone build. + The compiler consists of a parser (converts template strings to element ASTs), an optimizer (detects static trees for vdom render optimization), and a code generator (generate render function code from element ASTs). Note that codegen directly generates code strings from the element AST - it's done this way for smaller code size because the compiler is shipped to the browser in the standalone build. - **`core`**: contains universal, platform-agnostic runtime code. - The Vue 2.0 core is platform-agnostic - which means code inside `core` should be able to run in any JavaScript environment, be it the browser, Node.js, or an embedded JavaScript runtime in native applications. + The Vue 2.0 core is platform-agnostic. That is, the code inside `core` is able to be run in any JavaScript environment, be it the browser, Node.js, or an embedded JavaScript runtime in native applications. - **`observer`**: contains code related to the reactivity system. @@ -101,9 +101,9 @@ The default test script will do the following: lint with ESLint -> type check wi - **`instance`**: contains Vue instance constructor and prototype methods. - - **`global-api`**: as the name suggests. + - **`global-api`**: contains Vue global api. - - **`components`**: universal abstract components. Currently `keep-alive` is the only one. + - **`components`**: contains universal abstract components. - **`server`**: contains code related to server-side rendering. @@ -111,7 +111,7 @@ The default test script will do the following: lint with ESLint -> type check wi Entry files for dist builds are located in their respective platform directory. - Each platform module contains three parts: `compiler`, `runtime` and `server`, corresponding to the three directories above. Each part contains platform-specific modules/utilities which are then imported and injected to the core counterparts in platform-specific entry files. For example, the code implementing the logic behind `v-bind:class` is in `platforms/web/runtime/modules/class.js` - which is imported in `entries/web-runtime.js` and used to create the browser-specific vdom patching function. + Each platform module contains three parts: `compiler`, `runtime` and `server`, corresponding to the three directories above. Each part contains platform-specific modules/utilities which are imported and injected to the core counterparts in platform-specific entry files. For example, the code implementing the logic behind `v-bind:class` is in `platforms/web/runtime/modules/class.js` - which is imported in `entries/web-runtime.js` and used to create the browser-specific vdom patching function. - **`sfc`**: contains single-file component (`*.vue` files) parsing logic. This is used in the `vue-template-compiler` package. @@ -119,22 +119,15 @@ The default test script will do the following: lint with ESLint -> type check wi - **`types`**: contains TypeScript type definitions - - **`test`**: type definitions tests + - **`test`**: contains type definitions tests ## Financial Contribution -As a pure community-driven project without major corporate backing, we also welcome financial contributions via Patreon or OpenCollective. - -- [Become a backer or sponsor on Patreon](https://www.patreon.com/evanyou) -- [Become a backer or sponsor on OpenCollective](https://opencollective.com/vuejs) - -### What's the difference between Patreon and OpenCollective? - -Funds donated via Patreon goes directly to support Evan You's full-time work on Vue.js. Funds donated via OpenCollective are managed with transparent expenses and will be used for compensating work and expenses by core team members or sponsoring community events. Your name/logo will receive proper recognition and exposure by donating on either platform. +As a pure community-driven project without major corporate backing, we also welcome financial contributions via GitHub Sponsors and OpenCollective. Please consult the [Sponsor Page](https://vuejs.org/sponsor/) for more details. ## Credits -Thank you to all the people who have already contributed to vuejs! +Thank you to all the people who have already contributed to Vue.js! diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml new file mode 100644 index 00000000000..652c1192b7b --- /dev/null +++ b/.github/FUNDING.yml @@ -0,0 +1,8 @@ +# These are supported funding model platforms + +github: [yyx990803, posva] +patreon: evanyou +open_collective: vuejs +ko_fi: # Replace with a single Ko-fi username +tidelift: npm/vue +custom: # Replace with a single custom sponsorship URL diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md deleted file mode 100644 index cb7f961992c..00000000000 --- a/.github/ISSUE_TEMPLATE.md +++ /dev/null @@ -1,16 +0,0 @@ - - - diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 00000000000..675eea91e7c --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,11 @@ +blank_issues_enabled: false +contact_links: + - name: Create new issue + url: https://new-issue.vuejs.org/ + about: Please use the following link to create a new issue. + - name: Patreon + url: https://www.patreon.com/evanyou + about: Love Vue.js? Please consider supporting us via Patreon. + - name: Open Collective + url: https://opencollective.com/vuejs/donate + about: Love Vue.js? Please consider supporting us via Open Collective. diff --git a/BACKERS.md b/BACKERS.md index b220d849f94..fa66d206698 100644 --- a/BACKERS.md +++ b/BACKERS.md @@ -1,323 +1,9 @@

Sponsors & Backers

-Vue.js is an MIT-licensed open source project. It's an independent project with its ongoing development made possible entirely thanks to the support by these awesome [backers](https://github.com/vuejs/vue/blob/dev/BACKERS.md). If you'd like to join them, please consider: +Vue.js is an MIT-licensed open source project with its ongoing development made possible entirely by the support of the awesome sponsors and backers listed in this file. If you'd like to join them, please consider [ sponsor Vue's development](https://vuejs.org/sponsor/). -- [Become a backer or sponsor on Patreon](https://www.patreon.com/evanyou). -- [Become a backer or sponsor on OpenCollective](https://opencollective.com/vuejs). -- [One-time donation via PayPal or crypto-currencies.](https://vuejs.org/support-vuejs/#One-time-Donations) - -#### What's the difference between Patreon and OpenCollective? - -Funds donated via Patreon goes directly to support Evan You's full-time work on Vue.js. Funds donated via OpenCollective are managed with transparent expenses and will be used for compensating work and expenses by core team members or sponsoring community events. Your name/logo will receive proper recognition and exposure by donating on either platform. - -

- -

Platinum via Patreon

- - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
- - - -
- - -

Platinum via OpenCollective

- - - - -

Gold via Patreon

- - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - -
- - -

Gold via OpenCollective

- - - - - - - - - - - - - -

Silver via Patreon

- -- Matt Mullenweg - -

Bronze via Patreon

- - - - - - - - - - - -
- - - - - - - - - - - - - - - -
- - -

Bronze via OpenCollective

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Generous Backers via Patreon ($50+)

- - -- Wasim Khamlichi -- errorrik -- Alex Balashov -- Konstantin Levinski -- Samuel Smith -- HARRI J SALOMAA -- tjkoury -- Evan Leonardi - - -

Backers via Patreon

- - -- Luca Borghini -- kazuya kawaguchi -- Keisuke KITA -- Jack Barham -- Santa Cruz -- Tom Conlon -- Simon East -- Henry Zhu -- Benjamin Listwon -- Lars Andreas Ness -- Victor Tolbert -- Frank Dugan III -- Stephen Hartley -- Wen-Tien Chang -- Chestnut Hill -- Kirk Lewis -- Karol F -- Miljan Aleksic -- 叶解 -- Paul Straw -- Jake Ingman -- Barbara Liau -- Isaac Sant -- Milos Stojanovic -- 4 -- The Graphic Design School -- Christian Griffith -- Jarek Tkaczyk -- Andrew Davis -- Sean MacIsaac -- Xiaojie LI -- David Hess -- Niannian Modisette -- Dariusz Jastrzębski -- Matt Jones -- Dave Chenell -- Cheng-Wei Chien -- Duncan J Kenzie -- Mike Margerum -- Guy Gavergun -- Edithvale -- Intevation GmbH -- Luiz Eduardo Tanure Bacelar -- Chengzhi Yin -- Dan Barrett -- Zoran Knezevic -- James Simpson -- Pierre Vanhulst -- Vincent Gabriel -- Chris Anderson -- Jon Hobbs-Smith -- Akiho Nagao -- Asaf Yishai -- Estebe Anthony -- Haim Yulzari -- David McGuigan -- Jeremy Tan -- Jim Raden -- Fille Åström -- Nicholas Reid -- Tyler Scott -- Thong Yong Jun -- Tai Shi Lgin -- Bryan Gruneberg -- Roman Kuba -- Matthew McMillion -- Familiar Studio -- Matias Verdier -- Jamie McElwain -- Vivekanandhan Natarajan -- Alejandro Mohamad -- Rafael Belvederese -- Mickaël Andrieu -- Guilherme S L de Souza -- Rob Yedlin -- Daniel Waghorn -- Eric Githinji -- Chih-Hsuan, Fan -- Jordan Oroshiba -- Brian Jorden -- Cliff Hess -- Joe Ray Gregory -- Johnny Eshan -- Orney Enrique martinez Said -- Tom Striker -- Oskar Lindgren -- RADD Creative -- Maegan Wilson -- Rua Cura D'ars -- Richard Simpson -- Charles McKeever -- Alok Pant -- Jessie Hernandez -- Eric Fong -- Aparajita Fishman - - -

Backers via OpenCollective

- - +

+ + sponsors + +

diff --git a/README.md b/README.md index 5a0a2f3b647..ed68ab8bbbc 100644 --- a/README.md +++ b/README.md @@ -1,150 +1,27 @@ -

Vue logo

+

Vue logo

- Build Status - Coverage Status - Downloads - Version - License - Chat -
- Sauce Test Status + Build Status + Coverage Status + Downloads + Version + License + Chat

-

Supporting Vue.js

- -Vue.js is an MIT-licensed open source project. It's an independent project with its ongoing development made possible entirely thanks to the support by these awesome [backers](https://github.com/vuejs/vue/blob/dev/BACKERS.md). If you'd like to join them, please consider: - -- [Become a backer or sponsor on Patreon](https://www.patreon.com/evanyou). -- [Become a backer or sponsor on Open Collective](https://opencollective.com/vuejs). -- [One-time donation via PayPal or crypto-currencies.](https://vuejs.org/support-vuejs/#One-time-Donations) - -#### What's the difference between Patreon and OpenCollective? - -Funds donated via Patreon goes directly to support Evan You's full-time work on Vue.js. Funds donated via OpenCollective are managed with transparent expenses and will be used for compensating work and expenses by core team members or sponsoring community events. Your name/logo will receive proper recognition and exposure by donating on either platform. - -

Sponsors via Patreon

- -

Platinum

- - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
- - - -
- - -

Gold

- - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - -
- - -

Sponsors via Open Collective

- -

Platinum

- - - - -

Gold

- - - - - - +## This repo is for Vue 2 + +You are looking at the repository for Vue 2. The repo for Vue 3 is [vuejs/core](https://github.com/vuejs/core). + +## Sponsors + +Vue.js is an MIT-licensed open source project with its ongoing development made possible entirely by the support of these awesome [backers](https://github.com/vuejs/core/blob/main/BACKERS.md). If you'd like to join them, please consider [ sponsor Vue's development](https://vuejs.org/sponsor/). + +

+ + sponsors + +

--- @@ -154,20 +31,20 @@ Vue (pronounced `/vjuː/`, like view) is a **progressive framework** for buildin #### Browser Compatibility -Vue.js supports all browsers that are [ES5-compliant](http://kangax.github.io/compat-table/es5/) (IE8 and below are not supported). +Vue.js supports all browsers that are [ES5-compliant](https://kangax.github.io/compat-table/es5/) (IE8 and below are not supported). ## Ecosystem -| Project | Status | Description | -|---------|--------|-------------| -| [vue-router] | [![vue-router-status]][vue-router-package] | Single-page application routing | -| [vuex] | [![vuex-status]][vuex-package] | Large-scale state management | -| [vue-cli] | [![vue-cli-status]][vue-cli-package] | Project scaffolding | -| [vue-loader] | [![vue-loader-status]][vue-loader-package] | Single File Component (`*.vue` file) loader for webpack | -| [vue-server-renderer] | [![vue-server-renderer-status]][vue-server-renderer-package] | Server-side rendering support | -| [vue-class-component] | [![vue-class-component-status]][vue-class-component-package] | TypeScript decorator for a class-based API | -| [vue-rx] | [![vue-rx-status]][vue-rx-package] | RxJS integration | -| [vue-devtools] | [![vue-devtools-status]][vue-devtools-package] | Browser DevTools extension | +| Project | Status | Description | +| --------------------- | ------------------------------------------------------------ | ------------------------------------------------------- | +| [vue-router] | [![vue-router-status]][vue-router-package] | Single-page application routing | +| [vuex] | [![vuex-status]][vuex-package] | Large-scale state management | +| [vue-cli] | [![vue-cli-status]][vue-cli-package] | Project scaffolding | +| [vue-loader] | [![vue-loader-status]][vue-loader-package] | Single File Component (`*.vue` file) loader for webpack | +| [vue-server-renderer] | [![vue-server-renderer-status]][vue-server-renderer-package] | Server-side rendering support | +| [vue-class-component] | [![vue-class-component-status]][vue-class-component-package] | TypeScript decorator for a class-based API | +| [vue-rx] | [![vue-rx-status]][vue-rx-package] | RxJS integration | +| [vue-devtools] | [![vue-devtools-status]][vue-devtools-package] | Browser DevTools extension | [vue-router]: https://github.com/vuejs/vue-router [vuex]: https://github.com/vuejs/vuex @@ -176,20 +53,18 @@ Vue.js supports all browsers that are [ES5-compliant](http://kangax.github.io/co [vue-server-renderer]: https://github.com/vuejs/vue/tree/dev/packages/vue-server-renderer [vue-class-component]: https://github.com/vuejs/vue-class-component [vue-rx]: https://github.com/vuejs/vue-rx -[vue-devtools]: https://github.com/vuejs/vue-devtools - +[vue-devtools]: https://github.com/vuejs/vue-devtools [vue-router-status]: https://img.shields.io/npm/v/vue-router.svg [vuex-status]: https://img.shields.io/npm/v/vuex.svg -[vue-cli-status]: https://img.shields.io/npm/v/vue-cli.svg +[vue-cli-status]: https://img.shields.io/npm/v/@vue/cli.svg [vue-loader-status]: https://img.shields.io/npm/v/vue-loader.svg [vue-server-renderer-status]: https://img.shields.io/npm/v/vue-server-renderer.svg [vue-class-component-status]: https://img.shields.io/npm/v/vue-class-component.svg [vue-rx-status]: https://img.shields.io/npm/v/vue-rx.svg [vue-devtools-status]: https://img.shields.io/chrome-web-store/v/nhdogjmejiglipccpnnnanhbledajbpd.svg - [vue-router-package]: https://npmjs.com/package/vue-router [vuex-package]: https://npmjs.com/package/vuex -[vue-cli-package]: https://npmjs.com/package/vue-cli +[vue-cli-package]: https://npmjs.com/package/@vue/cli [vue-loader-package]: https://npmjs.com/package/vue-loader [vue-server-renderer-package]: https://npmjs.com/package/vue-server-renderer [vue-class-component-package]: https://npmjs.com/package/vue-class-component @@ -202,7 +77,7 @@ To check out [live examples](https://vuejs.org/v2/examples/) and docs, visit [vu ## Questions -For questions and support please use the [the official forum](http://forum.vuejs.org) or [community chat](https://chat.vuejs.org/). The issue list of this repo is **exclusively** for bug reports and feature requests. +For questions and support please use [the official forum](https://forum.vuejs.org) or [community chat](https://chat.vuejs.org/). The issue list of this repo is **exclusively** for bug reports and feature requests. ## Issues @@ -220,15 +95,14 @@ Detailed changes for each release are documented in the [release notes](https:// ## Contribution -Please make sure to read the [Contributing Guide](https://github.com/vuejs/vue/blob/dev/.github/CONTRIBUTING.md) before making a pull request. If you have a Vue-related project/component/tool, add it with a pull-request to [this curated list](https://github.com/vuejs/awesome-vue)! +Please make sure to read the [Contributing Guide](https://github.com/vuejs/vue/blob/dev/.github/CONTRIBUTING.md) before making a pull request. If you have a Vue-related project/component/tool, add it with a pull request to [this curated list](https://github.com/vuejs/awesome-vue)! Thank you to all the people who already contributed to Vue! - ## License -[MIT](http://opensource.org/licenses/MIT) +[MIT](https://opensource.org/licenses/MIT) Copyright (c) 2013-present, Yuxi (Evan) You diff --git a/benchmarks/reorder-list/index.html b/benchmarks/reorder-list/index.html index 81b5a26d0d8..668160b0719 100644 --- a/benchmarks/reorder-list/index.html +++ b/benchmarks/reorder-list/index.html @@ -15,7 +15,7 @@ diff --git a/examples/commits/mock.js b/examples/commits/mock.js new file mode 100644 index 00000000000..0e22a088686 --- /dev/null +++ b/examples/commits/mock.js @@ -0,0 +1,575 @@ +window.MOCKS = { + master: [ + { + sha: "0948d999f2fddf9f90991956493f976273c5da1f", + node_id: + "MDY6Q29tbWl0MTE3MzAzNDI6MDk0OGQ5OTlmMmZkZGY5ZjkwOTkxOTU2NDkzZjk3NjI3M2M1ZGExZg==", + commit: { + author: { + name: "Evan You", + email: "yyx990803@gmail.com", + date: "2017-10-13T03:07:14Z" + }, + committer: { + name: "Evan You", + email: "yyx990803@gmail.com", + date: "2017-10-13T03:07:14Z" + }, + message: "build: release 2.5.0", + tree: { + sha: "7846816b875eb664ddf718fad04a720efeac72d0", + url: + "https://api.github.com/repos/vuejs/vue/git/trees/7846816b875eb664ddf718fad04a720efeac72d0" + }, + url: + "https://api.github.com/repos/vuejs/vue/git/commits/0948d999f2fddf9f90991956493f976273c5da1f", + comment_count: 0, + verification: { + verified: false, + reason: "unsigned", + signature: null, + payload: null + } + }, + url: + "https://api.github.com/repos/vuejs/vue/commits/0948d999f2fddf9f90991956493f976273c5da1f", + html_url: + "https://github.com/vuejs/vue/commit/0948d999f2fddf9f90991956493f976273c5da1f", + comments_url: + "https://api.github.com/repos/vuejs/vue/commits/0948d999f2fddf9f90991956493f976273c5da1f/comments", + author: { + login: "yyx990803", + id: 499550, + node_id: "MDQ6VXNlcjQ5OTU1MA==", + avatar_url: "https://avatars1.githubusercontent.com/u/499550?v=4", + gravatar_id: "", + url: "https://api.github.com/users/yyx990803", + html_url: "https://github.com/yyx990803", + followers_url: "https://api.github.com/users/yyx990803/followers", + following_url: + "https://api.github.com/users/yyx990803/following{/other_user}", + gists_url: "https://api.github.com/users/yyx990803/gists{/gist_id}", + starred_url: + "https://api.github.com/users/yyx990803/starred{/owner}{/repo}", + subscriptions_url: + "https://api.github.com/users/yyx990803/subscriptions", + organizations_url: "https://api.github.com/users/yyx990803/orgs", + repos_url: "https://api.github.com/users/yyx990803/repos", + events_url: "https://api.github.com/users/yyx990803/events{/privacy}", + received_events_url: + "https://api.github.com/users/yyx990803/received_events", + type: "User", + site_admin: false + }, + committer: { + login: "yyx990803", + id: 499550, + node_id: "MDQ6VXNlcjQ5OTU1MA==", + avatar_url: "https://avatars1.githubusercontent.com/u/499550?v=4", + gravatar_id: "", + url: "https://api.github.com/users/yyx990803", + html_url: "https://github.com/yyx990803", + followers_url: "https://api.github.com/users/yyx990803/followers", + following_url: + "https://api.github.com/users/yyx990803/following{/other_user}", + gists_url: "https://api.github.com/users/yyx990803/gists{/gist_id}", + starred_url: + "https://api.github.com/users/yyx990803/starred{/owner}{/repo}", + subscriptions_url: + "https://api.github.com/users/yyx990803/subscriptions", + organizations_url: "https://api.github.com/users/yyx990803/orgs", + repos_url: "https://api.github.com/users/yyx990803/repos", + events_url: "https://api.github.com/users/yyx990803/events{/privacy}", + received_events_url: + "https://api.github.com/users/yyx990803/received_events", + type: "User", + site_admin: false + }, + parents: [ + { + sha: "bc2918f0e596d0e133a25606cbb66075402ce6c3", + url: + "https://api.github.com/repos/vuejs/vue/commits/bc2918f0e596d0e133a25606cbb66075402ce6c3", + html_url: + "https://github.com/vuejs/vue/commit/bc2918f0e596d0e133a25606cbb66075402ce6c3" + } + ] + }, + { + sha: "bc2918f0e596d0e133a25606cbb66075402ce6c3", + node_id: + "MDY6Q29tbWl0MTE3MzAzNDI6YmMyOTE4ZjBlNTk2ZDBlMTMzYTI1NjA2Y2JiNjYwNzU0MDJjZTZjMw==", + commit: { + author: { + name: "Evan You", + email: "yyx990803@gmail.com", + date: "2017-10-13T03:04:35Z" + }, + committer: { + name: "Evan You", + email: "yyx990803@gmail.com", + date: "2017-10-13T03:04:35Z" + }, + message: "build: build 2.5.0", + tree: { + sha: "5c57af855d76df68ec0782a2d2f4cd0a54e80125", + url: + "https://api.github.com/repos/vuejs/vue/git/trees/5c57af855d76df68ec0782a2d2f4cd0a54e80125" + }, + url: + "https://api.github.com/repos/vuejs/vue/git/commits/bc2918f0e596d0e133a25606cbb66075402ce6c3", + comment_count: 0, + verification: { + verified: false, + reason: "unsigned", + signature: null, + payload: null + } + }, + url: + "https://api.github.com/repos/vuejs/vue/commits/bc2918f0e596d0e133a25606cbb66075402ce6c3", + html_url: + "https://github.com/vuejs/vue/commit/bc2918f0e596d0e133a25606cbb66075402ce6c3", + comments_url: + "https://api.github.com/repos/vuejs/vue/commits/bc2918f0e596d0e133a25606cbb66075402ce6c3/comments", + author: { + login: "yyx990803", + id: 499550, + node_id: "MDQ6VXNlcjQ5OTU1MA==", + avatar_url: "https://avatars1.githubusercontent.com/u/499550?v=4", + gravatar_id: "", + url: "https://api.github.com/users/yyx990803", + html_url: "https://github.com/yyx990803", + followers_url: "https://api.github.com/users/yyx990803/followers", + following_url: + "https://api.github.com/users/yyx990803/following{/other_user}", + gists_url: "https://api.github.com/users/yyx990803/gists{/gist_id}", + starred_url: + "https://api.github.com/users/yyx990803/starred{/owner}{/repo}", + subscriptions_url: + "https://api.github.com/users/yyx990803/subscriptions", + organizations_url: "https://api.github.com/users/yyx990803/orgs", + repos_url: "https://api.github.com/users/yyx990803/repos", + events_url: "https://api.github.com/users/yyx990803/events{/privacy}", + received_events_url: + "https://api.github.com/users/yyx990803/received_events", + type: "User", + site_admin: false + }, + committer: { + login: "yyx990803", + id: 499550, + node_id: "MDQ6VXNlcjQ5OTU1MA==", + avatar_url: "https://avatars1.githubusercontent.com/u/499550?v=4", + gravatar_id: "", + url: "https://api.github.com/users/yyx990803", + html_url: "https://github.com/yyx990803", + followers_url: "https://api.github.com/users/yyx990803/followers", + following_url: + "https://api.github.com/users/yyx990803/following{/other_user}", + gists_url: "https://api.github.com/users/yyx990803/gists{/gist_id}", + starred_url: + "https://api.github.com/users/yyx990803/starred{/owner}{/repo}", + subscriptions_url: + "https://api.github.com/users/yyx990803/subscriptions", + organizations_url: "https://api.github.com/users/yyx990803/orgs", + repos_url: "https://api.github.com/users/yyx990803/repos", + events_url: "https://api.github.com/users/yyx990803/events{/privacy}", + received_events_url: + "https://api.github.com/users/yyx990803/received_events", + type: "User", + site_admin: false + }, + parents: [ + { + sha: "df8f179cfc3b98d6e0f48502cc5071b993d9cdb5", + url: + "https://api.github.com/repos/vuejs/vue/commits/df8f179cfc3b98d6e0f48502cc5071b993d9cdb5", + html_url: + "https://github.com/vuejs/vue/commit/df8f179cfc3b98d6e0f48502cc5071b993d9cdb5" + } + ] + }, + { + sha: "df8f179cfc3b98d6e0f48502cc5071b993d9cdb5", + node_id: + "MDY6Q29tbWl0MTE3MzAzNDI6ZGY4ZjE3OWNmYzNiOThkNmUwZjQ4NTAyY2M1MDcxYjk5M2Q5Y2RiNQ==", + commit: { + author: { + name: "Evan You", + email: "yyx990803@gmail.com", + date: "2017-10-13T00:41:36Z" + }, + committer: { + name: "Evan You", + email: "yyx990803@gmail.com", + date: "2017-10-13T00:41:36Z" + }, + message: "test: make hydration spec more stable for Edge", + tree: { + sha: "b399dba6180378d6a04715a5624599b49b3e6454", + url: + "https://api.github.com/repos/vuejs/vue/git/trees/b399dba6180378d6a04715a5624599b49b3e6454" + }, + url: + "https://api.github.com/repos/vuejs/vue/git/commits/df8f179cfc3b98d6e0f48502cc5071b993d9cdb5", + comment_count: 0, + verification: { + verified: false, + reason: "unsigned", + signature: null, + payload: null + } + }, + url: + "https://api.github.com/repos/vuejs/vue/commits/df8f179cfc3b98d6e0f48502cc5071b993d9cdb5", + html_url: + "https://github.com/vuejs/vue/commit/df8f179cfc3b98d6e0f48502cc5071b993d9cdb5", + comments_url: + "https://api.github.com/repos/vuejs/vue/commits/df8f179cfc3b98d6e0f48502cc5071b993d9cdb5/comments", + author: { + login: "yyx990803", + id: 499550, + node_id: "MDQ6VXNlcjQ5OTU1MA==", + avatar_url: "https://avatars1.githubusercontent.com/u/499550?v=4", + gravatar_id: "", + url: "https://api.github.com/users/yyx990803", + html_url: "https://github.com/yyx990803", + followers_url: "https://api.github.com/users/yyx990803/followers", + following_url: + "https://api.github.com/users/yyx990803/following{/other_user}", + gists_url: "https://api.github.com/users/yyx990803/gists{/gist_id}", + starred_url: + "https://api.github.com/users/yyx990803/starred{/owner}{/repo}", + subscriptions_url: + "https://api.github.com/users/yyx990803/subscriptions", + organizations_url: "https://api.github.com/users/yyx990803/orgs", + repos_url: "https://api.github.com/users/yyx990803/repos", + events_url: "https://api.github.com/users/yyx990803/events{/privacy}", + received_events_url: + "https://api.github.com/users/yyx990803/received_events", + type: "User", + site_admin: false + }, + committer: { + login: "yyx990803", + id: 499550, + node_id: "MDQ6VXNlcjQ5OTU1MA==", + avatar_url: "https://avatars1.githubusercontent.com/u/499550?v=4", + gravatar_id: "", + url: "https://api.github.com/users/yyx990803", + html_url: "https://github.com/yyx990803", + followers_url: "https://api.github.com/users/yyx990803/followers", + following_url: + "https://api.github.com/users/yyx990803/following{/other_user}", + gists_url: "https://api.github.com/users/yyx990803/gists{/gist_id}", + starred_url: + "https://api.github.com/users/yyx990803/starred{/owner}{/repo}", + subscriptions_url: + "https://api.github.com/users/yyx990803/subscriptions", + organizations_url: "https://api.github.com/users/yyx990803/orgs", + repos_url: "https://api.github.com/users/yyx990803/repos", + events_url: "https://api.github.com/users/yyx990803/events{/privacy}", + received_events_url: + "https://api.github.com/users/yyx990803/received_events", + type: "User", + site_admin: false + }, + parents: [ + { + sha: "a85f95c422e0bde6ce4068f5e44e761d4e00ca08", + url: + "https://api.github.com/repos/vuejs/vue/commits/a85f95c422e0bde6ce4068f5e44e761d4e00ca08", + html_url: + "https://github.com/vuejs/vue/commit/a85f95c422e0bde6ce4068f5e44e761d4e00ca08" + } + ] + } + ], + dev: [ + { + sha: "4074104fac219e61e542f4da3a4800975a8063f2", + node_id: + "MDY6Q29tbWl0MTE3MzAzNDI6NDA3NDEwNGZhYzIxOWU2MWU1NDJmNGRhM2E0ODAwOTc1YTgwNjNmMg==", + commit: { + author: { + name: "Evan You", + email: "yyx990803@gmail.com", + date: "2018-12-11T21:51:40Z" + }, + committer: { + name: "Evan You", + email: "yyx990803@gmail.com", + date: "2018-12-11T21:51:40Z" + }, + message: "perf: skip normalization on single child element v-for", + tree: { + sha: "75b999a0562d64a38eb322973c982edfa8d84fda", + url: + "https://api.github.com/repos/vuejs/vue/git/trees/75b999a0562d64a38eb322973c982edfa8d84fda" + }, + url: + "https://api.github.com/repos/vuejs/vue/git/commits/4074104fac219e61e542f4da3a4800975a8063f2", + comment_count: 0, + verification: { + verified: false, + reason: "unsigned", + signature: null, + payload: null + } + }, + url: + "https://api.github.com/repos/vuejs/vue/commits/4074104fac219e61e542f4da3a4800975a8063f2", + html_url: + "https://github.com/vuejs/vue/commit/4074104fac219e61e542f4da3a4800975a8063f2", + comments_url: + "https://api.github.com/repos/vuejs/vue/commits/4074104fac219e61e542f4da3a4800975a8063f2/comments", + author: { + login: "yyx990803", + id: 499550, + node_id: "MDQ6VXNlcjQ5OTU1MA==", + avatar_url: "https://avatars1.githubusercontent.com/u/499550?v=4", + gravatar_id: "", + url: "https://api.github.com/users/yyx990803", + html_url: "https://github.com/yyx990803", + followers_url: "https://api.github.com/users/yyx990803/followers", + following_url: + "https://api.github.com/users/yyx990803/following{/other_user}", + gists_url: "https://api.github.com/users/yyx990803/gists{/gist_id}", + starred_url: + "https://api.github.com/users/yyx990803/starred{/owner}{/repo}", + subscriptions_url: + "https://api.github.com/users/yyx990803/subscriptions", + organizations_url: "https://api.github.com/users/yyx990803/orgs", + repos_url: "https://api.github.com/users/yyx990803/repos", + events_url: "https://api.github.com/users/yyx990803/events{/privacy}", + received_events_url: + "https://api.github.com/users/yyx990803/received_events", + type: "User", + site_admin: false + }, + committer: { + login: "yyx990803", + id: 499550, + node_id: "MDQ6VXNlcjQ5OTU1MA==", + avatar_url: "https://avatars1.githubusercontent.com/u/499550?v=4", + gravatar_id: "", + url: "https://api.github.com/users/yyx990803", + html_url: "https://github.com/yyx990803", + followers_url: "https://api.github.com/users/yyx990803/followers", + following_url: + "https://api.github.com/users/yyx990803/following{/other_user}", + gists_url: "https://api.github.com/users/yyx990803/gists{/gist_id}", + starred_url: + "https://api.github.com/users/yyx990803/starred{/owner}{/repo}", + subscriptions_url: + "https://api.github.com/users/yyx990803/subscriptions", + organizations_url: "https://api.github.com/users/yyx990803/orgs", + repos_url: "https://api.github.com/users/yyx990803/repos", + events_url: "https://api.github.com/users/yyx990803/events{/privacy}", + received_events_url: + "https://api.github.com/users/yyx990803/received_events", + type: "User", + site_admin: false + }, + parents: [ + { + sha: "47487607fbb99339038cf84990ba341c25b5e20d", + url: + "https://api.github.com/repos/vuejs/vue/commits/47487607fbb99339038cf84990ba341c25b5e20d", + html_url: + "https://github.com/vuejs/vue/commit/47487607fbb99339038cf84990ba341c25b5e20d" + } + ] + }, + { + sha: "47487607fbb99339038cf84990ba341c25b5e20d", + node_id: + "MDY6Q29tbWl0MTE3MzAzNDI6NDc0ODc2MDdmYmI5OTMzOTAzOGNmODQ5OTBiYTM0MWMyNWI1ZTIwZA==", + commit: { + author: { + name: "Evan You", + email: "yyx990803@gmail.com", + date: "2018-12-11T21:51:03Z" + }, + committer: { + name: "Evan You", + email: "yyx990803@gmail.com", + date: "2018-12-11T21:51:03Z" + }, + message: "fix: fix v-for component with undefined value\n\nfix #9181", + tree: { + sha: "cc30183c2663cd88a35a4a18f758ad0ca872805a", + url: + "https://api.github.com/repos/vuejs/vue/git/trees/cc30183c2663cd88a35a4a18f758ad0ca872805a" + }, + url: + "https://api.github.com/repos/vuejs/vue/git/commits/47487607fbb99339038cf84990ba341c25b5e20d", + comment_count: 0, + verification: { + verified: false, + reason: "unsigned", + signature: null, + payload: null + } + }, + url: + "https://api.github.com/repos/vuejs/vue/commits/47487607fbb99339038cf84990ba341c25b5e20d", + html_url: + "https://github.com/vuejs/vue/commit/47487607fbb99339038cf84990ba341c25b5e20d", + comments_url: + "https://api.github.com/repos/vuejs/vue/commits/47487607fbb99339038cf84990ba341c25b5e20d/comments", + author: { + login: "yyx990803", + id: 499550, + node_id: "MDQ6VXNlcjQ5OTU1MA==", + avatar_url: "https://avatars1.githubusercontent.com/u/499550?v=4", + gravatar_id: "", + url: "https://api.github.com/users/yyx990803", + html_url: "https://github.com/yyx990803", + followers_url: "https://api.github.com/users/yyx990803/followers", + following_url: + "https://api.github.com/users/yyx990803/following{/other_user}", + gists_url: "https://api.github.com/users/yyx990803/gists{/gist_id}", + starred_url: + "https://api.github.com/users/yyx990803/starred{/owner}{/repo}", + subscriptions_url: + "https://api.github.com/users/yyx990803/subscriptions", + organizations_url: "https://api.github.com/users/yyx990803/orgs", + repos_url: "https://api.github.com/users/yyx990803/repos", + events_url: "https://api.github.com/users/yyx990803/events{/privacy}", + received_events_url: + "https://api.github.com/users/yyx990803/received_events", + type: "User", + site_admin: false + }, + committer: { + login: "yyx990803", + id: 499550, + node_id: "MDQ6VXNlcjQ5OTU1MA==", + avatar_url: "https://avatars1.githubusercontent.com/u/499550?v=4", + gravatar_id: "", + url: "https://api.github.com/users/yyx990803", + html_url: "https://github.com/yyx990803", + followers_url: "https://api.github.com/users/yyx990803/followers", + following_url: + "https://api.github.com/users/yyx990803/following{/other_user}", + gists_url: "https://api.github.com/users/yyx990803/gists{/gist_id}", + starred_url: + "https://api.github.com/users/yyx990803/starred{/owner}{/repo}", + subscriptions_url: + "https://api.github.com/users/yyx990803/subscriptions", + organizations_url: "https://api.github.com/users/yyx990803/orgs", + repos_url: "https://api.github.com/users/yyx990803/repos", + events_url: "https://api.github.com/users/yyx990803/events{/privacy}", + received_events_url: + "https://api.github.com/users/yyx990803/received_events", + type: "User", + site_admin: false + }, + parents: [ + { + sha: "984393fed981c58ad79ed50424f023dcfa6829d0", + url: + "https://api.github.com/repos/vuejs/vue/commits/984393fed981c58ad79ed50424f023dcfa6829d0", + html_url: + "https://github.com/vuejs/vue/commit/984393fed981c58ad79ed50424f023dcfa6829d0" + } + ] + }, + { + sha: "984393fed981c58ad79ed50424f023dcfa6829d0", + node_id: + "MDY6Q29tbWl0MTE3MzAzNDI6OTg0MzkzZmVkOTgxYzU4YWQ3OWVkNTA0MjRmMDIzZGNmYTY4MjlkMA==", + commit: { + author: { + name: "krystal", + email: "krystalnumber@gmail.com", + date: "2018-12-11T16:37:39Z" + }, + committer: { + name: "Evan You", + email: "yyx990803@gmail.com", + date: "2018-12-11T16:37:39Z" + }, + message: "test: change model text's priority case (#9170)", + tree: { + sha: "9af5d03838b964ea98c3173c92c3e6e5263ee9ec", + url: + "https://api.github.com/repos/vuejs/vue/git/trees/9af5d03838b964ea98c3173c92c3e6e5263ee9ec" + }, + url: + "https://api.github.com/repos/vuejs/vue/git/commits/984393fed981c58ad79ed50424f023dcfa6829d0", + comment_count: 0, + verification: { + verified: false, + reason: "unsigned", + signature: null, + payload: null + } + }, + url: + "https://api.github.com/repos/vuejs/vue/commits/984393fed981c58ad79ed50424f023dcfa6829d0", + html_url: + "https://github.com/vuejs/vue/commit/984393fed981c58ad79ed50424f023dcfa6829d0", + comments_url: + "https://api.github.com/repos/vuejs/vue/commits/984393fed981c58ad79ed50424f023dcfa6829d0/comments", + author: { + login: "dejour", + id: 7224044, + node_id: "MDQ6VXNlcjcyMjQwNDQ=", + avatar_url: "https://avatars3.githubusercontent.com/u/7224044?v=4", + gravatar_id: "", + url: "https://api.github.com/users/dejour", + html_url: "https://github.com/dejour", + followers_url: "https://api.github.com/users/dejour/followers", + following_url: + "https://api.github.com/users/dejour/following{/other_user}", + gists_url: "https://api.github.com/users/dejour/gists{/gist_id}", + starred_url: + "https://api.github.com/users/dejour/starred{/owner}{/repo}", + subscriptions_url: "https://api.github.com/users/dejour/subscriptions", + organizations_url: "https://api.github.com/users/dejour/orgs", + repos_url: "https://api.github.com/users/dejour/repos", + events_url: "https://api.github.com/users/dejour/events{/privacy}", + received_events_url: + "https://api.github.com/users/dejour/received_events", + type: "User", + site_admin: false + }, + committer: { + login: "yyx990803", + id: 499550, + node_id: "MDQ6VXNlcjQ5OTU1MA==", + avatar_url: "https://avatars1.githubusercontent.com/u/499550?v=4", + gravatar_id: "", + url: "https://api.github.com/users/yyx990803", + html_url: "https://github.com/yyx990803", + followers_url: "https://api.github.com/users/yyx990803/followers", + following_url: + "https://api.github.com/users/yyx990803/following{/other_user}", + gists_url: "https://api.github.com/users/yyx990803/gists{/gist_id}", + starred_url: + "https://api.github.com/users/yyx990803/starred{/owner}{/repo}", + subscriptions_url: + "https://api.github.com/users/yyx990803/subscriptions", + organizations_url: "https://api.github.com/users/yyx990803/orgs", + repos_url: "https://api.github.com/users/yyx990803/repos", + events_url: "https://api.github.com/users/yyx990803/events{/privacy}", + received_events_url: + "https://api.github.com/users/yyx990803/received_events", + type: "User", + site_admin: false + }, + parents: [ + { + sha: "6980035a86cfb79368af77a5040e468177d6b14a", + url: + "https://api.github.com/repos/vuejs/vue/commits/6980035a86cfb79368af77a5040e468177d6b14a", + html_url: + "https://github.com/vuejs/vue/commit/6980035a86cfb79368af77a5040e468177d6b14a" + } + ] + } + ] +}; diff --git a/examples/firebase/index.html b/examples/firebase/index.html index 5b1cf3d4a5e..7bab1a70b55 100644 --- a/examples/firebase/index.html +++ b/examples/firebase/index.html @@ -21,8 +21,8 @@
- - + +