UNPKG

wypcli

Version:

```npm install wypcli```

188 lines (155 loc) 5.14 kB
"use strict"; // promise工具 var program = require("commander"); var path = require('path'); var open = require('open'); var chalk = require('chalk'); var fs = require('fs'); var _require = require('util'), promisify = _require.promisify; var download = promisify(require('download-git-repo')); var _require2 = require('../config/repo-config'), vueRepo = _require2.vueRepo; var _require3 = require('../untils/terminal'), commandSpawn = _require3.commandSpawn; var _require4 = require('../untils/until'), compile = _require4.compile, writeToFile = _require4.writeToFile; /** * 创建项目Action * * */ var createProjectAction = function createProjectAction(project) { var command; return regeneratorRuntime.async(function createProjectAction$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: console.log(chalk.yellow('wuyupei help you create Vue Project')); // 1.clone项目模板 _context.next = 3; return regeneratorRuntime.awrap(download(vueRepo, project, { clone: true })); case 3: command = process.platform === 'win32' ? 'npm.cmd' : 'npm'; // 2.npm install 安装依赖 _context.next = 6; return regeneratorRuntime.awrap(commandSpawn(command, ['install'], { cwd: "./".concat(project) })); case 6: // 3.运行项目 npm run serve commandSpawn(command, ['run', 'serve'], { cwd: "./".concat(project) }); // 4.打开浏览器 open('http://localhost:8080'); case 8: case "end": return _context.stop(); } } }); }; /** *添加组件Action */ var addComponentAction = function addComponentAction(name) { var result, targetPath; return regeneratorRuntime.async(function addComponentAction$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: _context2.next = 2; return regeneratorRuntime.awrap(compile('vue-template.ejs', { name: name, lowername: name.toLowerCase() })); case 2: result = _context2.sent; // 写文件到指定的文件里 program.opts().dest 获取参数 targetPath = path.resolve(program.opts().dest || 'src/components', "".concat(name, ".vue")); writeToFile(targetPath, result); case 5: case "end": return _context2.stop(); } } }); }; /** * 添加pageAction */ var addPageAction = function addPageAction(name) { var pageResult, routeResult, targetPagePath, targetRoutePath; return regeneratorRuntime.async(function addPageAction$(_context3) { while (1) { switch (_context3.prev = _context3.next) { case 0: _context3.next = 2; return regeneratorRuntime.awrap(compile('vue-template.ejs', { name: name, lowername: name.toLowerCase() })); case 2: pageResult = _context3.sent; _context3.next = 5; return regeneratorRuntime.awrap(compile('vue-router.ejs', { name: name, lowername: name.toLowerCase() })); case 5: routeResult = _context3.sent; targetPagePath = path.resolve(program.opts().dest, "".concat(name, ".vue")); targetRoutePath = path.resolve(program.opts().dest, "route.js"); fs.mkdir(program.opts().dest, function (err) { if (err) { console.log(chalk.red(err)); } }); writeToFile(targetPagePath, pageResult); writeToFile(targetRoutePath, routeResult); case 11: case "end": return _context3.stop(); } } }); }; /** * 添加storeAction */ var addStoreAction = function addStoreAction(store) { var storeResult, typesResult, targetStorePath, targetResultPath; return regeneratorRuntime.async(function addStoreAction$(_context4) { while (1) { switch (_context4.prev = _context4.next) { case 0: _context4.next = 2; return regeneratorRuntime.awrap(compile('vue-store.ejs', {})); case 2: storeResult = _context4.sent; _context4.next = 5; return regeneratorRuntime.awrap(compile('vue-types.ejs', {})); case 5: typesResult = _context4.sent; targetStorePath = path.resolve(program.opts().dest, "index.js"); targetResultPath = path.resolve(program.opts().dest, "types.js"); fs.mkdir(program.opts().dest, function (err) { if (err) { console.log(chalk.red(err)); } }); writeToFile(targetStorePath, storeResult); writeToFile(targetResultPath, typesResult); case 11: case "end": return _context4.stop(); } } }); }; module.exports = { createProjectAction: createProjectAction, addComponentAction: addComponentAction, addPageAction: addPageAction, addStoreAction: addStoreAction };