├── README.md ├── package.json ├── .gitignore └── index.js /README.md: -------------------------------------------------------------------------------- 1 | # vueapp-generator 2 | quick start for a vue project 3 | 4 | # 安装使用 5 | * 全局安装:npm install vueapp-generator -g 6 | 7 | # 命令 8 | * vueapp -V: 查看版本号 9 | * vueapp -h: 查看帮助 10 | * vueapp -i [项目名]: 初始化项目。项目名缺省时,在当前目录下初始化项目 11 | 12 | # 使用 13 | * 安装之后,可以执行`vuepp -V`,来验证是否安装成功,如果有版本号输出,则证明安装成功 14 | * 进入项目目录后执行`npm install`,进行依赖安装 15 | * 依赖安装完成后,可查看[vueapp-tpl](https://github.com/jiaolongHuang/vueapp-tpl)的具体使用方式。 16 | 17 | # 模板地址 18 | [vueapp-tpl](https://github.com/jiaolongHuang/vueapp-tpl) 19 | 20 | # 参考 21 | [wxapp-generator](https://github.com/kmokidd/wxapp-generator) 22 | 23 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "vueapp-generator", 3 | "version": "1.0.2", 4 | "description": "a vue-mini-program project generator", 5 | "main": "index.js", 6 | "author": "hjl", 7 | "license": "ISC", 8 | "homepage": "https://github.com/jiaolongHuang/vueapp-generator", 9 | "repository": { 10 | "type": "git", 11 | "url": "https://github.com/jiaolongHuang/vueapp-generator" 12 | }, 13 | "dependencies": { 14 | "commander": "https://registry.npmjs.org/commander/-/commander-2.11.0.tgz", 15 | "download-git-repo": "https://registry.npmjs.org/download-git-repo/-/download-git-repo-1.0.1.tgz", 16 | "mkdirp": "http://registry.npm.qiwoo.org/mkdirp/download/mkdirp-0.5.1.tgz", 17 | "request": "https://registry.npmjs.org/request/-/request-2.81.0.tgz" 18 | }, 19 | "bin": { 20 | "vueapp": "./index.js" 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | 8 | # Runtime data 9 | pids 10 | *.pid 11 | *.seed 12 | *.pid.lock 13 | 14 | # Directory for instrumented libs generated by jscoverage/JSCover 15 | lib-cov 16 | 17 | # Coverage directory used by tools like istanbul 18 | coverage 19 | 20 | # nyc test coverage 21 | .nyc_output 22 | 23 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) 24 | .grunt 25 | 26 | # Bower dependency directory (https://bower.io/) 27 | bower_components 28 | 29 | # node-waf configuration 30 | .lock-wscript 31 | 32 | # Compiled binary addons (http://nodejs.org/api/addons.html) 33 | build/Release 34 | 35 | # Dependency directories 36 | node_modules/ 37 | jspm_packages/ 38 | 39 | # Typescript v1 declaration files 40 | typings/ 41 | 42 | # Optional npm cache directory 43 | .npm 44 | 45 | # Optional eslint cache 46 | .eslintcache 47 | 48 | # Optional REPL history 49 | .node_repl_history 50 | 51 | # Output of 'npm pack' 52 | *.tgz 53 | 54 | # Yarn Integrity file 55 | .yarn-integrity 56 | 57 | # dotenv environment variables file 58 | .env 59 | 60 | .vscode 61 | */.DS_Store 62 | .DS_Store 63 | .npmignore 64 | 65 | 66 | -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 3 | 'use strict'; 4 | 5 | const __root = process.cwd() 6 | const fs = require('fs') 7 | const path = require('path') 8 | const program = require('commander') 9 | const download = require('download-git-repo') 10 | const appInfo = require('./package.json') 11 | 12 | program 13 | .version(appInfo.version) 14 | .usage('[options] ') 15 | .option('-i, --init [name]', '输入项目名, 进行初始化, 缺省则在当前目录下创建') 16 | .parse(process.argv); 17 | 18 | function initProj(name) { 19 | 20 | if(name === undefined){ 21 | return; 22 | }else{ 23 | let tip, projPath 24 | if(name === true){ 25 | 26 | tip = "准备在当前目录下初始化项目" 27 | projPath = path.resolve(__root) 28 | }else{ 29 | 30 | tip = `准备创建项目:${name}` 31 | projPath = path.resolve(__root, name) 32 | } 33 | console.log(tip) 34 | console.log(`项目路径:${projPath}`) 35 | 36 | if(name === true || !fs.existsSync(projPath)){ 37 | console.log("正在创建项目中...") 38 | 39 | download('jiaolongHuang/vueapp-tpl', projPath, function(err) { 40 | 41 | console.log(err ? err : '项目创建成功~~'); 42 | }); 43 | }else { 44 | console.warn(name + ' 项目已经存在,请使用别的名字'); 45 | } 46 | } 47 | } 48 | 49 | initProj(program.init); 50 | --------------------------------------------------------------------------------