
Security News
GitHub Actions Pricing Whiplash: Self-Hosted Actions Billing Change Postponed
GitHub postponed a new billing model for self-hosted Actions after developer pushback, but moved forward with hosted runner price cuts on January 1.
A simple CLI for scaffolding Vue.js projects.
Prerequisites: Node.js (>5.x preferred) and Git.
$ npm install -g vue-cli
$ vue init <template-name> <project-name>
Example:
$ vue init webpack my-project
The above command pulls the template from vuejs-templates/webpack, prompts for some information, and generates the project at ./my-project/.
The purpose of official Vue project templates are to provide opinionated, battery-included development tooling setups so that users can get started with actual app code as fast as possible. However, these templates are un-opinionated in terms of how you structure your app code and what libraries you use in addition to Vue.js.
All official project templates are repos in the vuejs-templates organization. When a new template is added to the organization, you will be able to run vue init <template-name> <project-name> to use that template. You can also run vue list to see all available official templates.
Current available templates include:
webpack - A full-featured Webpack + vue-loader setup with hot reload, linting, testing & css extraction.
webpack-simple - A simple Webpack + vue-loader setup for quick prototyping.
browserify - A full-featured Browserify + vueify setup with hot-reload, linting & unit testing.
browserify-simple - A simple Browserify + vueify setup for quick prototyping.
simple - The simplest possible Vue setup in a single HTML file
It's unlikely to make everyone happy with the official templates. You can simply fork an official template and then use it via vue-cli with:
vue init username/repo my-project
Where username/repo is the GitHub repo shorthand for your fork.
The shorthand repo notation is passed to download-git-repo so you can also use things like bitbucket:username/repo for a Bitbucket repo and username/repo#branch for tags or branches.
If you would like to download from a private repository use the --clone flag and the cli will use git clone so your SHH keys are used.
Instead of a GitHub repo, you can also use a template on your local file system:
vue init ~/fs/path/to-custom-template my-project
A template repo must have a template directory that holds the template files.
A template repo may have a meta.json file that provides metadata for the template. The meta.json can contain the following fields:
prompts: used to collect user options data;
filters: used to conditional filter files to render.
completeMessage: the message to be displayed to the user when the template has been generated. You can include custom instruction here.
The prompts field in meta.json should be an object hash containing prompts for the user. For each entry, the key is the variable name and the value is an Inquirer.js question object. Example:
{
"prompts": {
"name": {
"type": "string",
"required": true,
"message": "Project name"
}
}
}
After all prompts are finished, all files inside template will be rendered using Handlebars, with the prompt results as the data.
A prompt can be made conditional by adding a when field, which should be a JavaScript expression evaluated with data collected from previous prompts. For example:
{
"prompts": {
"lint": {
"type": "confirm",
"message": "Use a linter?"
},
"lintConfig": {
"when": "lint",
"type": "list",
"message": "Pick a lint config",
"choices": [
"standard",
"airbnb",
"none"
]
}
}
}
The prompt for lintConfig will only be triggered when the user answered yes to the lint prompt.
Two commonly used Handlebars helpers, if_eq and unless_eq are pre-registered:
{{#if_eq lintConfig "airbnb"}};{{/if_eq}}
The filters field in meta.json should be an object hash containing file filtering rules. For each entry, the key is a minimatch glob pattern and the value is a JavaScript expression evaluated in the context of prompt answers data. Example:
{
"filters": {
"test/**/*": "needTests"
}
}
Files under test will only be generated if the user answered yes to the prompt for needTests.
Note that the dot option for minimatch is set to true so glob patterns would also match dotfiles by default.
FAQs
A simple CLI for scaffolding Vue.js projects.
The npm package vue-cli receives a total of 1,616 weekly downloads. As such, vue-cli popularity was classified as popular.
We found that vue-cli demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 3 open source maintainers collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
GitHub postponed a new billing model for self-hosted Actions after developer pushback, but moved forward with hosted runner price cuts on January 1.

Research
Destructive malware is rising across open source registries, using delays and kill switches to wipe code, break builds, and disrupt CI/CD.

Security News
Socket CTO Ahmad Nassri shares practical AI coding techniques, tools, and team workflows, plus what still feels noisy and why shipping remains human-led.