觉醒时刻
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

113 lines
4.0 KiB

let Fs = require('fs');
let Path = require('path');
let buildFloderPath = null;
let encriptSign = "";
let encriptKey = "";
let needMixFilename = "";
let nameMixSign = "";
function copyHelper() {
let fromPath = Editor.url("packages://hyz-encript/panel/md5_util.js","utf-8");
let toPath = Path.join(buildFloderPath,"assets","md5_util.js");
Fs.copyFile(fromPath,toPath,function (err) {
if(err){
Editor.error("复制md5_util.js出错")
}
});
fromPath = Editor.url("packages://hyz-encript/panel/web_downloader.js","utf-8");
toPath = Path.join(buildFloderPath,"assets","web_downloader.js");
Fs.copyFile(fromPath,toPath,function (err) {
if(err){
Editor.error("复制web_downloader.js出错")
}
});
}
let _searthDir = function(dirName,callback){
if (!Fs.existsSync(dirName)) {
Editor.log(`${dirName} 目录不存在`)
return
}
let files = Fs.readdirSync(dirName);
files.forEach((fileName) => {
let filePath = Path.join(dirName, fileName.toString());
let stat = Fs.statSync(filePath);
if (stat.isDirectory()) {
_searthDir(filePath,callback);
} else {
callback(fileName,filePath)
}
});
}
/**修改index.html */
function copyHtml() {
let mainJsName = "main.js"
let settingJsName = "settings.js"
let physicsJsName = "physics-min.js"
let cocos2dJsName = "cocos2d-js-min.js"
let styleDesktopName = "style-desktop.css"
let styleMobileName = "style-mobile.css"
let splashName = "splash.png"
let icoName = "favicon.ico"
_searthDir(buildFloderPath,function (fileName,path) {
if(/main\.([0-9 a-z]|\.)*js/.test(fileName)){
mainJsName = fileName;
}else if(/physics(-min)?\.([0-9 a-z]|\.)*js/.test(fileName)){
physicsJsName = fileName;
}else if(/settings\.([0-9 a-z]|\.)*js/.test(fileName)){
settingJsName = fileName;
}else if(/cocos2d-js(-min)?\.([0-9 a-z]|\.)*js/.test(fileName)){
cocos2dJsName = fileName;
}else if(/style-desktop\.([0-9 a-z]|\.)*css/.test(fileName)){
styleDesktopName = fileName;
}else if(/style-mobile\.([0-9 a-z]|\.)*css/.test(fileName)){
styleMobileName = fileName;
}else if(/favicon\.([0-9 a-z]|\.)*ico/.test(fileName)){
icoName = fileName;
}else if(/splash\.([0-9 a-z]|\.)*png/.test(fileName)){
splashName = fileName;
}
})
let fromPath = Editor.url("packages://hyz-encript/panel/template_web_index.html","utf-8");
let toPath = Path.join(buildFloderPath,"index.html");
let htmlStr = Fs.readFileSync(fromPath,"utf-8");
htmlStr = htmlStr.replace('hyz.register_decripted_downloader(tmp_encriptSign,tmp_encriptKey,tmp_needMixFilename,tmp_nameMixSign);',`hyz.register_decripted_downloader('${encriptSign}','${encriptKey}',${needMixFilename},'${nameMixSign}');`)
htmlStr = htmlStr.replace("main.js",mainJsName)
htmlStr = htmlStr.replace("settings.js",settingJsName)
if(physicsJsName.includes("min")){
htmlStr = htmlStr.replace("physics-min.js",physicsJsName)
}else{
htmlStr = htmlStr.replace("physics.js",physicsJsName)
}
if(cocos2dJsName.includes("min")){
htmlStr = htmlStr.replace("cocos2d-js-min.js",cocos2dJsName)
}else{
htmlStr = htmlStr.replace("cocos2d-js.js",cocos2dJsName)
}
htmlStr = htmlStr.replace("style-desktop.css",styleDesktopName)
htmlStr = htmlStr.replace("favicon.ico",icoName)
htmlStr = htmlStr.replace("style-mobile.css",styleMobileName)
htmlStr = htmlStr.replace("splash.png",splashName)
// Editor.log(htmlStr)
Fs.writeFileSync(toPath,htmlStr)
}
module.exports = function applyWeb({_buildFloderPath,_encriptSign,_encriptKey,_needMixFilename,_nameMixSign}) {
buildFloderPath = _buildFloderPath
encriptSign = _encriptSign
encriptKey = _encriptKey
needMixFilename = _needMixFilename
nameMixSign = _nameMixSign
copyHelper();
copyHtml();
}