1 Star 5 Fork 0

programmerMonkey / HTML_Screensaver

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
gulpfile.js 2.53 KB
一键复制 编辑 原始数据 按行查看 历史
shixing 提交于 2020-09-22 14:08 . 代码暂存。
const electronBuilder = require('electron-builder');
const {
src,
dest,
series,
parallel
} = require('gulp');
const fs = require('fs');
const childProcess = require('child_process');
const path = require('path');
function clearTask() {
return new Promise((resolve, reject) => {
let folderPath = __dirname;
let distPath = path.join(folderPath, 'dist');
_delDir(distPath);
resolve();
});
}
/**
* 开始打包。
*/
async function electronPackage() {
return await electronBuilder.build();
}
function copyFiles() {
return src('./package.json').pipe(dest('./dist'));
}
function copyEntryjs() {
return src('./entry.js').pipe(dest('./dist'));
}
function _delDir(p) {
let files = [];
if (fs.existsSync(p)) {
files = fs.readdirSync(p);
files.forEach((file) => {
let curPath = p + "/" + file;
if (fs.statSync(curPath).isDirectory()) {
//递归删除文件夹
_delDir(curPath);
} else {
//删除文件
fs.unlinkSync(curPath);
}
});
fs.rmdirSync(p);
}
}
/**
* 拷贝默认特效
*/
function copyDefaultEffect() {
return src('./defaultEffect/**/*.*').pipe(dest('../out/win-unpacked/defaultEffect'));
}
/**
* 拷贝配置文件到根目录
*/
function copyConfig() {
return src('./config.json').pipe(dest('../out/win-unpacked/'));
}
/**
* 拷贝特效文件夹
*/
function copyEffects() {
return src('./ScreenEffects/**/*.*').pipe(dest('../out/win-unpacked/ScreenEffects'));
}
/**
* Windows程序申请Administrator权限。
*/
function administrator() {
return new Promise(async solve => {
let cmdStr = `.\\tools\\mt.exe -manifest .\\tools\\windowsAdminRequest.xml -outputresource:${path.join('..', 'out', "win-unpacked", "HTML屏保")}.exe`;
childProcess.execSync(cmdStr);
solve();
});
}
/**
* 重命名应用程序后缀名称为.scr
*/
function renameExe() {
return new Promise((resolve, reject) => {
try {
let oldPath = path.join(path.dirname(__dirname), 'out', 'HTML屏保 1.0.0.exe');
let newPath = path.join(path.dirname(__dirname), 'out', 'HTMLScreenSaver.scr');
fs.renameSync(oldPath, newPath);
resolve();
} catch (e) {
reject(e);
}
});
}
module.exports.default = series(clearTask, parallel(copyFiles, copyEntryjs), electronPackage, copyConfig, copyDefaultEffect, copyEffects, administrator, renameExe);
JavaScript
1
https://gitee.com/programermonkey/HTML_Screensaver.git
git@gitee.com:programermonkey/HTML_Screensaver.git
programermonkey
HTML_Screensaver
HTML_Screensaver
master

搜索帮助

53164aa7 5694891 3bd8fe86 5694891