Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Simple CLI for scaffolding Vue.js projects

License

NotificationsYou must be signed in to change notification settings

jrtkcoder/vue-cli

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

54 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

A simple CLI for scaffolding Vue.js projects.

Installation

Prerequisites:Node.js (>5.x preferred) andGit.

$ npm install -g vue-cli

Usage

$ vue init<template-name><project-name>

Example:

$ vue init webpack my-project

The above command pulls the template fromvuejs-templates/webpack, prompts for some information, and generates the project at./my-project/.

Official Templates

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 thevuejs-templates organization. When a new template is added to the organization, you will be able to runvue init <template-name> <project-name> to use that template. You can also runvue 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

Custom Templates

It's unlikely to make everyone happy with the official templates. You can simply fork an official template and then use it viavue-cli with:

vue init username/repo my-project

Whereusername/repo is the GitHub repo shorthand for your fork.

The shorthand repo notation is passed todownload-git-repo so you can also use things likebitbucket:username/repo for a Bitbucket repo andusername/repo#branch for tags or branches.

If you would like to download from a private repository use the--clone flag and the cli will usegit clone so your SHH keys are used.

Local Templates

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

Writing Custom Templates from Scratch

  • A template repomust have atemplate directory that holds the template files.

  • A template repomay have ameta.json file that provides metadata for the template. Themeta.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.

prompts

Theprompts field inmeta.json should be an object hash containing prompts for the user. For each entry, the key is the variable name and the value is anInquirer.js question object. Example:

{"prompts": {"name": {"type":"string","required":true,"message":"Project name"    }  }}

After all prompts are finished, all files insidetemplate will be rendered usingHandlebars, with the prompt results as the data.

Conditional Prompts

A prompt can be made conditional by adding awhen 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 forlintConfig will only be triggered when the user answered yes to thelint prompt.

Pre-registered Handlebars Helpers

Two commonly used Handlebars helpers,if_eq andunless_eq are pre-registered:

{{#if_eqlintConfig"airbnb"}};{{/if_eq}}

File filters

Thefilters field inmeta.json should be an object hash containing file filtering rules. For each entry, the key is aminimatch glob pattern and the value is a JavaScript expression evaluated in the context of prompt answers data. Example:

{"filters": {"test/**/*":"needTests"  }}

Files undertest will only be generated if the user answered yes to the prompt forneedTests.

Note that thedot option for minimatch is set totrue so glob patterns would also match dotfiles by default.

About

Simple CLI for scaffolding Vue.js projects

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript98.7%
  • Other1.3%

[8]ページ先頭

©2009-2025 Movatter.jp