async refreshFiles() {
        Logger.info('build', 'refresh ssr bundle & manifest');

        let changed = false;
        let templateChanged = false;

        let clientManifestPath = distLavasPath(this.clientConfig.output.path, CLIENT_MANIFEST);
        if (this.clientMFS.existsSync(clientManifestPath)) {
            let clientManifestContent = this.clientMFS.readFileSync(clientManifestPath, 'utf-8');
            if (this.clientManifest && JSON.stringify(this.clientManifest) !== clientManifestContent) {
                changed = true;
            }
            this.clientManifest = JSON.parse(clientManifestContent);
        }

        let serverBundlePath = distLavasPath(this.serverConfig.output.path, SERVER_BUNDLE);
        if (this.serverMFS.existsSync(serverBundlePath)) {
            let serverBundleContent = this.serverMFS.readFileSync(serverBundlePath, 'utf8');
            if (this.serverBundle && JSON.stringify(this.serverBundle) !== serverBundleContent) {
                changed = true;
            }
            this.serverBundle = JSON.parse(serverBundleContent);
        }

        let templateContent = await this.getTemplate(this.config.router.base);
        if (this.template !== templateContent) {
            changed = true;
            templateChanged = true;
        }
        this.template = templateContent;

        if (changed) {
            await this.createRenderer();

            // if we detect template changed, publish reload event to client
            if (templateChanged) {
                this.reloadClient();
            }
        }
    }
if any of clientManifest, serverBundle and template changed, refresh them and
create new renderer