热加载

修改项目文件保存后, gitbook serve 不支持热加载 当你修改 Gitbook 项目保存后, serve 重启的时提示无法使用 mkdir 操作, 以至于不能达到重启的目的 那么你需要进行以下操作:

  • 找到你下载的gitbook版本文件夹: 一般位于Users\当前用户\.gitbook\versions\下会有对应版本号的文件夹名称

  • 在对应版本文件夹内找到lib\cli\serve.js文件

  • 复制以下代码放置

    serve.js

    文件中

    /* 代码首行 */
    const fs=require("fs");
    
    /* 任意空白位置 */
    function deleteFolder(path) {
    let files = [];
    if( fs.existsSync(path) ) {
        files = fs.readdirSync(path);
        files.forEach(function(file,index){
            let curPath = path + "/" + file;
            if(fs.statSync(curPath).isDirectory()) {
                deleteFolder(curPath);
            } else {
                fs.unlinkSync(curPath);
            }
        });
        fs.rmdirSync(path);
        }
    }
    复制代码
  • serve.js找到函数体generateBook

  • 在函数内

    var outputFolder = getOutputFolder(args);

    后另起一行写入以下代码

    if (server.isRunning()) deleteFolder(outputFolder)
    复制代码
  • 保存退出, 重启gitbook, 发现热加载生效了

注意: 当你停止服务的时候, 若服务没有自动删除 _book 文件夹时, 你需要手动删除 _book 文件夹 ``

最后更新于

这有帮助吗?