美文网首页H5游戏
gulp 构建硬核小游戏

gulp 构建硬核小游戏

作者: 吴海生 | 来源:发表于2019-12-25 11:06 被阅读0次

硬核工程目录结构

Hardcore -laya工程 硬核首页
|
|--- bin 魅族打包的内容
| ...
|--- release 硬核
|--- huawei 华为工程
|--- quickgame oppo工程
|--- vivogame vivo工程
|--- src 硬核首页代码

npm 安装依赖

 npm install  gulp   typescript gulp-concat   gulp-typescript gulp-typescript-filesort gulp-filelist gulp gulp-shell glob silly-datetime   minimist tsify

创建gulpfile.js


const gulp = require("gulp");
const ts = require("gulp-typescript");
const sorter = require("gulp-typescript-sort");
const concat = require('gulp-concat');
const tsProject = ts.createProject("tsconfig.json");
const zip = require('gulp-zip');
var exec = require('child_process').exec;

// 输出到的目录
let outDir = "bin/js/"; // 魅族
// 编译硬核工程  该工程只是首页工程 用于加载游戏js 
function compileTSFile() {
   return gulp.src([
      "libs/*.ts",
      "src/**/*.ts"
   ])
      .pipe(sorter(false))
      .pipe(tsProject())
      .pipe(concat('hardcore.js'))
      .pipe(gulp.dest(outDir));
}


/**
 * 执行CDM命令
 * @param { } cmd 
 * @param {*} callBack 
 */
function executeCMD(cmd, callBack) {

   exec(cmd, function (error, stdout, stderr) {
      if (error) {
         console.error(cmd, ' error');
      } else {
         console.log(cmd, " \n 执行 成功");
         callBack && callBack();
      }
   });
}

// 魅族压缩zip文件命令
gulp.task('zip', function (args, args2) {
   return gulp.src('bin/**/*.*')
      .pipe(zip('bin.zip'))
      .pipe(gulp.dest('.'));
});

///////////////////////// 魅族 ////////////////////

/**  魅族编译压缩成zip  */
gulp.task('meizu', function (args, args2) {

   outDir = "bin/js/"; // 魅族输出目录
   return compileTSFile().on('end', () => {
      return gulp.src('bin/**/*.*')
         .pipe(zip('bin.zip'))
         .pipe(gulp.dest('.')).on('end', () => {
            console.log('meizu zip end');
         });
   });
});




////////////////////////////// OPPO //////////////////////////////////
/**
 * 推送rpk到 OPPO手机
 * @param { } callBack 
 */
function pushOppoSDCARD(callBack) {
   let cmd = 'adb push D:/SVN/frontend/sdk/project/HardCore/release/quickgame/dist/com.hzby.tjyr.nearme.gamecenter.rpk'
      + '  /sdcard/games/com.hzby.tjyr.nearme.gamecenter.rpk';
   executeCMD(cmd, callBack);
}

/**
 * 打包oppo
 * @param { } callBack 
 */
function packOppo(callBack) {
   let cmd = " cd /D D:/SVN/frontend/sdk/project/HardCore/release/quickgame "
      + ' & quickgame pack ';
   executeCMD(cmd, pushOppoSDCARD);
}

function packOppoRelease(callBack) {
   let cmd = " cd /D D:/SVN/frontend/sdk/project/HardCore/release/quickgame "
      + ' & quickgame pack release';
   executeCMD(cmd, pushOppoReleaseSDCARD);
}

function pushOppoReleaseSDCARD(callBack) {
   let cmd = 'adb push D:/SVN/frontend/sdk/project/HardCore/release/quickgame/dist/com.hzby.tjyr.nearme.gamecenter.signed.rpk'
      + '  /sdcard/games/com.hzby.tjyr.nearme.gamecenter.signed.rpk';
   executeCMD(cmd, callBack);
}


gulp.task('oppo', function () {

   outDir = 'release/quickgame/js/';
   return compileTSFile().on('end', () => {
      packOppoRelease();
   });
})


///////////////////////////  华为 //////////////////////////////


let packHuawei = function (callBack) {
   let cmd = 'start D:/SVN/frontend/sdk/project/HardCore/release/huawei/run.bat';
   executeCMD(cmd, callBack);
}
gulp.task('huawei', function () {

   outDir = 'release/huawei/game/js/';
   return compileTSFile().on('end', () => {
      packHuawei(() => { console.log("华为完成") });
   });
})



///////////////////// vivo /////////////////////////////


function pushVIVO(callBack) {
   let cmd = 'cd D:/SVN/frontend/sdk/project/HardCore/release/vivogame  '
      + '& start D:/SVN/frontend/sdk/project/HardCore/release/vivogame/run.bat'
   executeCMD(cmd, callBack);
}

function vivoRelease(callBack) {
   let cmd = 'cd D:/SVN/frontend/sdk/project/HardCore/release/vivogame  '
      + '& start D:/SVN/frontend/sdk/project/HardCore/release/vivogame/release.bat'
   executeCMD(cmd, callBack);
}



gulp.task('vivo', function () {

   outDir = 'release/vivogame/js/';
   return compileTSFile().on('end', () => {
      // pushVIVO();
      vivoRelease();
   });

})

// 串行打包所有的硬核(顺序)执行
gulp.task('all',  gulp.series('oppo','vivo','huawei','meizu'))

相关文章

  • gulp 构建硬核小游戏

    硬核工程目录结构 Hardcore -laya工程 硬核首页||--- bin 魅族打包的内容| ...|---...

  • 相关文章记录

    1.gulp构建工具相关信息 前端自动化构建工具gulp记录Gulp.js-livereload 不用F5了,实时...

  • gulp的简单使用

    gulp构建项目 1.安装gulp,创建gulpfile.js作为入口文件 2.确定需要构建的文件,列出构建任务和...

  • gulp

    gulp解释 GULP 是前端开发过程中对代码进行构建的工具,是自动化项目的构建利器。GULP 是 基 于 Nod...

  • 『前端工程化』gulp(gulp3 && gul

    Gulp 什么是Gulp Gulp是基于Node.js的构建工具,我们使用它来集成前端开发环境,来构建自动化工作流...

  • 使用gulp构建TypeScript项目

    使用Gulp构建TypeScript,在Gulp管道里添加Browserify, uglify或Watchify。...

  • 初认gulp

    为什么是Gulp? 类似Gulp的工具,我们通常称之为构建工具。如今最流行的两个构建工具是Gulp和Grunt。已...

  • Gulp笔记

    Gulp.js Gulp.js 是一个构建工具,与Grunt相比,Gulp更加简洁,执行效率更高。 安装Gulp ...

  • gulp资源整理

    Gulp官网 Gulp中文网 Gulp插件网 博客: 前端构建工具gulpjs的使用介绍及技巧 - 无双 gulp...

  • 1,node.js

    自动化构建工具 gulp webpack grunt gulp--构建项目,压缩合并处理,依赖于 gulpf...

网友评论

    本文标题:gulp 构建硬核小游戏

    本文链接:https://www.haomeiwen.com/subject/wmxcoctx.html