create webpage project
This commit is contained in:
commit
c659f795dd
94 files changed
+9040
No files matched your search
+185
@@ -0,0 +1,185 @@
|
||||
/**
|
||||
*
|
||||
* @authors Tony.Deng (dengtongyu123@163.com)
|
||||
* @date 2017-05-17 15:09:29
|
||||
* @version $Id$
|
||||
*/
|
||||
|
||||
const gulp = require('gulp');
|
||||
const gutil = require("gulp-util");
|
||||
const runSequence = require('run-sequence');
|
||||
const copy = require('gulp-contrib-copy');
|
||||
|
||||
|
||||
//webPackConfig.entry.app.unshift("webpack-dev-server/client?http://localhost:8080/");
|
||||
|
||||
//初始化变量
|
||||
let config = {
|
||||
base: 'src',
|
||||
build: 'build'
|
||||
};
|
||||
|
||||
let pathConfig = {
|
||||
|
||||
}
|
||||
|
||||
//提示
|
||||
let LOG = {
|
||||
DEFAULT: '',
|
||||
ERROR: 'red',
|
||||
GOOD: 'green',
|
||||
WARN: 'yellow',
|
||||
FUN: 'pink',
|
||||
EM: 'cyan',
|
||||
TIPS: 'gray'
|
||||
};
|
||||
let colorLog = function (text, color) {
|
||||
let colors = {
|
||||
red: 31,
|
||||
green: 32,
|
||||
yellow: 33,
|
||||
blue: 34,
|
||||
pink: 35,
|
||||
cyan: 36,
|
||||
gray: 90
|
||||
};
|
||||
return console.log('\033[' + (colors[color] || '00') + 'm' + text + '\033[0m');
|
||||
};
|
||||
|
||||
let userInput = 1; //输入值
|
||||
|
||||
gulp.task('server', function() {
|
||||
|
||||
|
||||
});
|
||||
|
||||
gulp.task('build', function (cb) {
|
||||
|
||||
});
|
||||
|
||||
//复制模板
|
||||
gulp.task('copy-pc', function () {
|
||||
return gulp.src(config.base + '/template/tpl-pc/**/*.*')
|
||||
.pipe(copy())
|
||||
.pipe(gulp.dest(config.base + '/pages/' + pathName));
|
||||
});
|
||||
gulp.task('copy-phone', function () {
|
||||
return gulp.src(config.base + '/template/tpl-phone/**/*.*')
|
||||
.pipe(copy())
|
||||
.pipe(gulp.dest(config.base + '/pages/' + pathName));
|
||||
});
|
||||
|
||||
function setPath(pathName) {
|
||||
|
||||
pathConfig.currPath = pathName;
|
||||
|
||||
//stylus build目录
|
||||
pathConfig.styleBuildPath = config.base + '/pages/' + pathName + '/**/*.styl';
|
||||
|
||||
//swig build目录
|
||||
pathConfig.htmlBuildPath = config.base + '/pages/' + pathName + '/**/*.htm';
|
||||
|
||||
//htmlmin build目录
|
||||
pathConfig.htmlminBuildPath = config.build + '/pages/' + pathName + '/**/*.html';
|
||||
|
||||
//wabpck build 目录
|
||||
pathConfig.scriptBuildPath = config.base + '/pages/' + pathName + '/**/*.js';
|
||||
pathConfig.webpackOutPath = config.build + '/pages/' + pathName;
|
||||
|
||||
//uglify build目录
|
||||
pathConfig.uglifyBuildPath = config.build + '/pages/' + pathName + '/**/*.js';
|
||||
|
||||
//tmod build目录
|
||||
pathConfig.tmodBuildPath = config.base + '/pages/' + pathName + '/**/*.tmod';
|
||||
pathConfig.tmodBasePath =config.base + '/pages/';
|
||||
pathConfig.tmodOutPath = config.base + '/script/tmodjs/';
|
||||
|
||||
require('./task')(pathConfig,config);
|
||||
}
|
||||
|
||||
//随机路径名
|
||||
function randomActName() {
|
||||
let d = new Date();
|
||||
let m = (d.getMonth() + 1) < 10 ? '0' + (d.getMonth() + 1) : (d.getMonth() + 1).toString();
|
||||
let dd = d.getDate() < 10 ? '0' + d.getDate() : d.getDate();
|
||||
let str = d.getFullYear() + m + dd + String.fromCharCode(Math.floor(Math.random() * 26) + "a".charCodeAt(0)) + Math.floor(Math.random() * 10);
|
||||
d = m = null;
|
||||
return str;
|
||||
}
|
||||
|
||||
//选择模板
|
||||
function selectTpl() {
|
||||
colorLog('请选择需要创建的模板:', LOG.EM);
|
||||
colorLog('1. tpl-pc\n2. tpl-phone', LOG.TIPS);
|
||||
gets(function (choose) {
|
||||
let input = choose.replace(/[\n\r]+/ig, '');
|
||||
if (input == 1) {
|
||||
runSequence('copy-pc', function () {
|
||||
setPath(pathName);
|
||||
runSequence('dev');
|
||||
});
|
||||
} else if (input == 2) {
|
||||
runSequence('copy-phone', function () {
|
||||
setPath(pathName);
|
||||
runSequence('dev');
|
||||
});
|
||||
} else {
|
||||
colorLog('没有该选项,请重新运行!', LOG.ERROR);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
//输入流
|
||||
function gets(cb) {
|
||||
process.stdin.resume();
|
||||
process.stdin.setEncoding('utf8');
|
||||
process.stdin.once('data', function (chunk) {
|
||||
process.stdin.pause();
|
||||
cb(chunk);
|
||||
//process.stdin.end();
|
||||
});
|
||||
}
|
||||
|
||||
gulp.task('default', function () {
|
||||
colorLog('请选择执行的任务:', LOG.EM);
|
||||
colorLog('1. random create\n2. name create\n3. dev\n4. pack', LOG.TIPS);
|
||||
gets(function (text) {
|
||||
userInput = text.replace(/[\n\r]+/ig, '');
|
||||
if (userInput == 1) {
|
||||
pathName = randomActName();
|
||||
selectTpl();
|
||||
} else if (userInput == 2) {
|
||||
colorLog('请输入需要创建的路径名:', LOG.EM);
|
||||
gets(function (name) {
|
||||
pathName = name.replace(/[\n\r]+/ig, '');
|
||||
selectTpl();
|
||||
//setPath(pathName);
|
||||
//runSequence('dev');
|
||||
});
|
||||
} else if (userInput == 3) {
|
||||
colorLog('请输入页面路径名:', LOG.EM);
|
||||
gets(function (name) {
|
||||
pathName = name.replace(/[\n\r]+/ig, '');
|
||||
setPath(pathName);
|
||||
runSequence('dev');
|
||||
});
|
||||
} else if (userInput == 4) {
|
||||
colorLog('请输入构建路径名:', LOG.EM);
|
||||
gets(function (name) {
|
||||
pathName = name.replace(/[\n\r]+/ig, '');
|
||||
setPath(pathName);
|
||||
runSequence('build');
|
||||
});
|
||||
} else {
|
||||
colorLog('没有该选项,请重新运行!', LOG.ERROR);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
gulp.task('build', function (callback) {
|
||||
runSequence('stylus_build','swig_build','htmlmin_build','tmod_build','webpack_build','uglify_build');
|
||||
});
|
||||
|
||||
gulp.task('dev', function (callback) {
|
||||
runSequence('stylus_build','swig_build','htmlmin_build','tmod_build','webpack_build','server');
|
||||
});
|
||||
Reference in new issue
Block a user