## CLI Usage
### Creating a New Project
``` sh
vue create my-project
```
### 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 global add @vue/cli-service-global
echo 'Hello!
' > App.vue
vue serve
```
`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 add @vue/cli-plugin-eslint
```
Then you can invoke the plugin's generator so it generates files into your project:
``` sh
# the @vue/cli-plugin- prefix can be omitted
vue invoke eslint
```
In addition, you can pass options to the plugin:
``` sh
vue invoke eslint --config airbnb --lintOn save
```
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.
### 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
```