UNPKG

slush-lucas-vue

Version:

A vue project template for lucas.

145 lines (136 loc) 3.44 kB
/** + ---------------------------------------- + + 版权所有2016年,UED团队webpack构建工具 v0.01 + Author: luzhichao + QQ: 190135180 + Mail: luzhichao@social-touch.com + Date: 2016-09-06 10:00:00 + ---------------------------------------- + + Last Modified by: luzhichao + Last Modified time: 2016-09-06 10:00:00 + ---------------------------------------- + **/ 'use strict'; /** * 模块加载 * @name 加载本地模块 * @param gulp 构建模块 * @param install gulp-install模块 * @param conflict gulp-conflict模块 * @param rename gulp-rename模块 * @param template gulp-template模块 * @param inquirer 询问模块 * @param version 版本号 */ var gulp = require('gulp') var install = require('gulp-install') var conflict = require('gulp-conflict') var rename = require('gulp-rename') var template = require('gulp-template') var inquirer = require('inquirer') var version = require('lucas').version /** * CSS预处理器 * @name CSS预处理器 * @param Only CSS 默认样式 * @param Sass Sass预处理 * @param Less Less预处理 * @param PostCSS PostCSS预处理 */ var CssChoices = [ {name: 'Only CSS', value: ''}, {name: 'Sass', value: 'sass'}, {name: 'Less', value: 'less'} ] if (version < 1) { CssChoices.push({name: 'PostCSS', value: 'postcss'}) } /* 询问设置 */ gulp.task('default', function (done) { inquirer.prompt([ { type: 'input', name: 'name', message: '输入项目名称-英文', default: getNameProposal() }, { type: 'input', name: 'description', message: '输入项目描述-英文', default: 'vue项目.' }, { type: 'confirm', name: 'private', message: '是否设为私有的?', default: true }, { type: 'confirm', name: 'devServer', message: '是否需要开发服务器?', default: true }, { type: 'list', name: 'csstype', message: '请选择CSS的预处理器?', default: '', choices: CssChoices }, { type: 'confirm', name: 'unit', message: '是否需要单元测试 (Karma + Mocha)?', default: true }, { type: 'input', name: 'license', message: 'license', default: 'ISC' }, { type: 'confirm', name: 'moveon', message: '继续?' } ], /* 设置文件安装项目结构 */ function (answers) { if (!answers.moveon) { return done() } answers.nextLucas = version > 0 var filesPath = [__dirname + '/template/**'] if (!answers.unit) { filesPath = filesPath.concat([ '!' + __dirname + '/template/karma.conf.js', '!' + __dirname + '/template/test/**' ]) } gulp.src(filesPath, { dot: true }) .pipe(template(answers)) .pipe(rename(function (file) { if (file.basename[0] === '_') { file.basename = '.' + file.basename.slice(1) } })) .pipe(conflict('./')) .pipe(gulp.dest('./')) .pipe(install()) .on('end', function () { done() }) .resume() }) }) function getNameProposal () { var path = require('path') try { return require(path.join(process.cwd(), 'package.json')).name } catch (e) { return path.basename(process.cwd()) } }