creator 热更使用脚本生成manifest文件慢问题

大佬们,我问一下,我用脚本生成manifest文件,热更速度特别慢,我用热更新资源工具生成,下载速度就特别快

脚本文件:

var dest = ‘./remote-assets/’;
var src = ‘./jsb/’;

// Parse arguments
var i = 2;
while ( i < process.argv.length) {
var arg = process.argv[i];

switch (arg) {
case '--url' :
case '-u' :
    var url = process.argv[i+1];
    manifest.packageUrl = url;
    manifest.remoteManifestUrl = url + 'project.manifest';
    manifest.remoteVersionUrl = url + 'version.manifest';
    i += 2;
    break;
case '--version' :
case '-v' :
    manifest.version = process.argv[i+1];
    i += 2;
    break;
case '--src' :
case '-s' :
    src = process.argv[i+1];
    i += 2;
    break;
case '--dest' :
case '-d' :
    dest = process.argv[i+1];
    i += 2;
    break;
default :
    i++;
    break;
}

}

function readDir (dir, obj) {
var stat = fs.statSync(dir);
if (!stat.isDirectory()) {
return;
}
var subpaths = fs.readdirSync(dir), subpath, size, md5, compressed, relative;
for (var i = 0; i < subpaths.length; ++i) {
if (subpaths[i][0] === ‘.’) {
continue;
}
subpath = path.join(dir, subpaths[i]);
stat = fs.statSync(subpath);
if (stat.isDirectory()) {
readDir(subpath, obj);
}
else if (stat.isFile()) {
// Size in Bytes
size = stat[‘size’];
md5 = crypto.createHash(‘md5’).update(fs.readFileSync(subpath, ‘binary’)).digest(‘hex’);
compressed = path.extname(subpath).toLowerCase() === ‘.zip’;

        relative = path.relative(src, subpath);
        relative = relative.replace(/\\/g, '/');
        relative = encodeURI(relative);
        obj[relative] = {
            'size' : size,
            'md5' : md5
        };
        if (compressed) {
            obj[relative].compressed = true;
        }
    }
}

}

var mkdirSync = function (path) {
try {
fs.mkdirSync(path);
} catch(e) {
if ( e.code != ‘EEXIST’ ) throw e;
}
}

// Iterate res and src folder
readDir(path.join(src, ‘src’), manifest.assets);
readDir(path.join(src, ‘res’), manifest.assets);

var destManifest = path.join(dest, ‘project.manifest’);
var destVersion = path.join(dest, ‘version.manifest’);

mkdirSync(dest);

fs.writeFile(destManifest, JSON.stringify(manifest), (err) => {
if (err) throw err;
console.log(‘Manifest successfully generated’);
});

delete manifest.assets;
delete manifest.searchPaths;
fs.writeFile(destVersion, JSON.stringify(manifest), (err) => {
if (err) throw err;
console.log(‘Version successfully generated’);
});

你们都没有遇到过这个问题吗? 老哥们 感觉像是更新了一个完整的包的速度

对比一下两个生成的manifest文件是不是一样的,用作热更的manifest和包内的manifest相差过大自然下载的文件也多

确实有很多不一样的 谢了老哥 我看下什么问题

多谢楼上大哥的指点,是我用脚本生成的 md5 跟用 热更新资源工具生成的 md5 不一致 导致所有的文件都下载了下来