mirror of
https://github.com/vuejs/vue-cli.git
synced 2026-04-30 00:41:12 -05:00
chore: readme
This commit is contained in:
@@ -0,0 +1,91 @@
|
||||
## 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).
|
||||
|
||||
#### 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}/
|
||||
```
|
||||
|
||||
#### Examples
|
||||
|
||||
Appears under "Features" header, `compiler` subheader:
|
||||
|
||||
```
|
||||
feat(compiler): add 'comments' option
|
||||
```
|
||||
|
||||
Appears under "Bug Fixes" header, `v-model` subheader, with a link to issue #28:
|
||||
|
||||
```
|
||||
fix(v-model): handle events on blur
|
||||
|
||||
close #28
|
||||
```
|
||||
|
||||
Appears under "Performance Improvements" header, and under "Breaking Changes" with the breaking change explanation:
|
||||
|
||||
```
|
||||
perf(core): improve vdom diffing by removing 'foo' option
|
||||
|
||||
BREAKING CHANGE: The 'foo' option has been removed.
|
||||
```
|
||||
|
||||
The following commit and commit `667ecc1` do not appear in the changelog if they are under the same release. If not, the revert commit appears under the "Reverts" header.
|
||||
|
||||
```
|
||||
revert: feat(compiler): add 'comments' option
|
||||
|
||||
This reverts commit 667ecc1654a317a13331b17617d973392f415f02.
|
||||
```
|
||||
|
||||
### Full Message Format
|
||||
|
||||
A commit message consists of a **header**, **body** and **footer**. The header has a **type**, **scope** and **subject**:
|
||||
|
||||
```
|
||||
<type>(<scope>): <subject>
|
||||
<BLANK LINE>
|
||||
<body>
|
||||
<BLANK LINE>
|
||||
<footer>
|
||||
```
|
||||
|
||||
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 <hash>.`, 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.
|
||||
|
||||
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...
|
||||
|
||||
### Subject
|
||||
|
||||
The subject contains succinct description of the change:
|
||||
|
||||
* use the imperative, present tense: "change" not "changed" nor "changes"
|
||||
* don't capitalize first letter
|
||||
* no dot (.) at the end
|
||||
|
||||
### Body
|
||||
|
||||
Just as in the **subject**, use the imperative, present tense: "change" not "changed" nor "changes".
|
||||
The body should include the motivation for the change and contrast this with previous behavior.
|
||||
|
||||
### Footer
|
||||
|
||||
The footer should contain any information about **Breaking Changes** and is also the place to
|
||||
reference GitHub issues that this commit **Closes**.
|
||||
|
||||
**Breaking Changes** should start with the word `BREAKING CHANGE:` with a space or two newlines. The rest of the commit message is then used for this.
|
||||
@@ -0,0 +1,49 @@
|
||||
## Development Setup
|
||||
|
||||
This project uses a monorepo setup that requires using [Yarn](https://yarnpkg.com) because it relies on [Yarn workspaces](https://yarnpkg.com/blog/2017/08/02/introducing-workspaces/).
|
||||
|
||||
``` sh
|
||||
# install dependencies
|
||||
yarn
|
||||
|
||||
# link `vue` executable
|
||||
# if you have the old vue-cli installed globally, you may
|
||||
# need to uninstall it first.
|
||||
cd packages/@vue/cli
|
||||
yarn link
|
||||
|
||||
# create test projects in /packages/test
|
||||
cd -
|
||||
cd packages/test
|
||||
vue create test-app
|
||||
cd test-app
|
||||
yarn serve
|
||||
```
|
||||
|
||||
### Testing Tips
|
||||
|
||||
The full test suite is rather slow, because it has a number of e2e tests that perform full webpack builds of actual projects. To narrow down the tests needed to run during development, you can pass a list of packages to the `test` script:
|
||||
|
||||
``` sh
|
||||
yarn test cli cli-services
|
||||
```
|
||||
|
||||
If the package is a plugin, you can ommit the `cli-plugin-` prefix:
|
||||
|
||||
``` sh
|
||||
yarn test typescript
|
||||
```
|
||||
|
||||
To further narrow down tests, you can also specify your own regex:
|
||||
|
||||
``` sh
|
||||
yarn test -g <filenameRegex>
|
||||
```
|
||||
|
||||
You can also pass `--watch` to run tests in watch mode.
|
||||
|
||||
Note that `jest --onlyChanged` isn't always accurate because some tests spawn child processes.
|
||||
|
||||
### Plugin Development
|
||||
|
||||
See [dedicated section in docs](https://github.com/vuejs/vue-cli/tree/dev/docs/Plugin.md).
|
||||
@@ -0,0 +1,10 @@
|
||||
<!--
|
||||
IMPORTANT: Please use the following link to create a new issue:
|
||||
|
||||
https://new-issue.vuejs.org/?repo=vuejs/vue-cli
|
||||
|
||||
If your issue was not created using the app above, it will be closed immediately.
|
||||
|
||||
中文用户请注意:
|
||||
请使用上面的链接来创建新的 issue。如果不是用上述工具创建的 issue 会被自动关闭。
|
||||
-->
|
||||
@@ -1,54 +1,73 @@
|
||||
# vue-cli [](https://circleci.com/gh/vuejs/vue-cli/tree/dev) [](https://ci.appveyor.com/project/yyx990803/vue-cli-6b0a6/branch/dev)
|
||||
|
||||
> WIP: this is the work in progress branch of the upcoming vue-cli 3.0.
|
||||
> Only for preview for template maintainers.
|
||||
> This is the branch for `@vue/cli` 3.0.
|
||||
|
||||
## Development Setup
|
||||
**Status: alpha**
|
||||
|
||||
This project uses a monorepo setup that requires using [Yarn](https://yarnpkg.com) because it relies on [Yarn workspaces](https://yarnpkg.com/blog/2017/08/02/introducing-workspaces/).
|
||||
## Install
|
||||
|
||||
``` sh
|
||||
# install dependencies
|
||||
yarn
|
||||
|
||||
# link `vue` executable
|
||||
# if you have the old vue-cli installed globally, you may
|
||||
# need to uninstall it first.
|
||||
cd packages/@vue/cli
|
||||
yarn link
|
||||
|
||||
# create test projects in /packages/test
|
||||
cd -
|
||||
cd packages/test
|
||||
vue create test-app
|
||||
cd test-app
|
||||
yarn serve
|
||||
npm install -g @vue/cli
|
||||
# or
|
||||
yarn global add @vue/cli
|
||||
```
|
||||
|
||||
### Testing Tips
|
||||
## Usage
|
||||
|
||||
The full test suite is rather slow, because it has a number of e2e tests that perform full webpack builds of actual projects. To narrow down the tests needed to run during development, you can pass a list of packages to the `test` script:
|
||||
#### Creating a New Project
|
||||
|
||||
``` sh
|
||||
yarn test cli cli-services
|
||||
vue create my-project
|
||||
```
|
||||
|
||||
If the package is a plugin, you can ommit the `cli-plugin-` prefix:
|
||||
#### Zero-config Prototyping
|
||||
|
||||
You can rapidly prototype with just a single `*.vue` file with the `vue serve` and `vue build` commands, but they require an additional global addon to be installed:
|
||||
|
||||
``` sh
|
||||
yarn test typescript
|
||||
yarn global add @vue/cli-service-global
|
||||
echo '<template><h1>Hello!</h1></template>' > App.vue
|
||||
vue serve
|
||||
```
|
||||
|
||||
To further narrow down tests, you can also specify your own regex:
|
||||
`vue serve` uses the same default setup (webpack, babel, postcss & eslint) as projects created by `vue create`. It automatically infers the entry file in the current directory - the entry can be one of `main.js`, `index.js`, `App.vue` or `app.vue`. If needed, you can also provide an `index.html`, install and use local dependencies, or even configure babel, postcss & eslint with corresponding config files.
|
||||
|
||||
The drawback of `vue serve` is that it relies on globally installed dependencies which may be inconsistent on different machines. Therefore this is only recommended for rapid prototyping.
|
||||
|
||||
#### Installing Plugins in an Existing Project
|
||||
|
||||
Each CLI plugin ships with a generator (which creates files) and a runtime plugin (which tweaks the core webpack config and injects commands). When you use `vue create` to create a new project, some plugins will be pre-installed for you based on your feature selection. In case you want to install a plugin into an already created project, simply install it first:
|
||||
|
||||
``` sh
|
||||
yarn test -g <filenameRegex>
|
||||
yarn add @vue/cli-plugin-eslint
|
||||
```
|
||||
|
||||
You can also pass `--watch` to run tests in watch mode.
|
||||
Then you can invoke the plugin's generator so it generates files into your project:
|
||||
|
||||
Note that `jest --onlyChanged` isn't always accurate because some tests spawn child processes.
|
||||
``` sh
|
||||
vue invoke eslint # the prefix can be omitted
|
||||
```
|
||||
|
||||
### Plugin Development
|
||||
It is recommended to commit your project's current state before running `vue invoke`, so that after file generation you can review the changes and revert if needed.
|
||||
|
||||
See [dedicated section in docs](https://github.com/vuejs/vue-cli/tree/dev/docs/Plugin.md).
|
||||
#### Pulling `vue-cli@2.x` Templates (Legacy)
|
||||
|
||||
`@vue/cli` uses the same `vue` binary, so it overwrites `vue-cli@2.x`. If you still need the legacy `vue init` functionality, you can install a global bridge:
|
||||
|
||||
``` sh
|
||||
yarn global add @vue/cli-init
|
||||
# vue init now works exactly the same as vue-cli@2.x
|
||||
vue init webpack my-project
|
||||
```
|
||||
|
||||
#### Customization and Plugin Usage
|
||||
|
||||
For a detailed guide on how to customize a project, recipes for common tasks, detailed usage for each plugin, please see the [full documentation](https://github.com/vuejs/vue-cli/blob/dev/docs/README.md).
|
||||
|
||||
## Contributing
|
||||
|
||||
Please see [contributing guide](https://github.com/vuejs/vue-cli/blob/dev/.github/CONTRIBUTING.md).
|
||||
|
||||
## License
|
||||
|
||||
MIT
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
# WIP
|
||||
Reference in New Issue
Block a user