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
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();
|
|
} |