在使用gitbook写东西的时候,当文档内容有更新的时候,会自动更新内容到页面上,方便预览。但是,存在一个bug,就是会神奇的崩溃掉,出现如下的错误提示:

Restart after change in file README.md

Stopping server
events.js:183
throw er; // Unhandled 'error' event
^ Error: EPERM: operation not permitted, lstat 'F:\workspace\private-cloud-backup\gitbook-test\_book'

解决方案也很简单,重新运行一下gitbook serve命令即可。有时候每保存一下,就会崩溃一下,这就有点烦了。

网上搜一下,有没有现在的解决方案

遇到问题,首先问问百度谷歌,毕竟是面向搜索引擎的开发人员嘛。

网上有大佬对这个事故,做了深入的分析,分析过程很详细,我就不说了,重点引用一下结论:

windows 系统上启动 gitbook 服务后,如果本地文件发生更改,热加会失败.

如果启动服务器后立即删除 _book 目录,那么之后再怎么修改本地文件都能顺利重启.

目前还没有找到问题的根源,下一次将深入源码继续探讨到底是哪里出问题导致 Windows 系统无法重启.

虽然及时删除 _book 目录并不算是很好的解决方案,但至少 markdown 灰姑娘又能化妆成 html 小姐姐了呢!

有兴趣的朋友可以阅读一下原文 https://juejin.cn/post/6844903840332939277

虽然大佬分析的很详细,但是也没能从中找到一个简单的可执行方案。

换种思路,解决问题

回过头来,换一种思路再来考虑这个问题,我们使用gitbook是为了写作,而gitbook serve只是为了让我们可以随时预览自己的写作结果。当出现问题时,我们的手工解决方案是重启一即可,那我们能不能让他崩溃时自动重启呢?

关于自动重启的方案,首先想到的是守护进程。关于守护进程,要么自己写一个,要么网上找一个,感觉这都太了,不是我想要的。于是又了解了一下bat批处理脚本能不能解决,你别说,还真可以:

::该脚本为启动gitbook本地服务器,当服务崩溃时会自动重启
@echo off
:rungitbook
call gitbook serve
@goto rungitbook

将以上代码,在文档目录保存为gitbook.serve.bat,然后双击运行。当gitbook serve崩溃时,会自动重新启动。

至此,问题就算是解决了。

其它

常用命令

命令 说明
gitbook init 在当前目录初始化gitbook目录结构
gitbook build 将文档编译为html文件
gitbook serve 启动gitbook服务

发布到Github

发布到Github只需要git push即可。这种方式只能将文档同步到Github上,我们还需要将编译结果直接作为网页发布,这里推荐使用gh-pages

使用gh-pages只是将指定目录发布到gh-pages分支,你首先需要在Github上建立相应仓库。

安装

gh-pages是一个nodejs包,首先你需要安装nodejs环境。

然后,运行以下命令安装gh-pages

npm install -g gh-pages

发布到gh-pages

安装好gh-pages后,就可以使用gh-pages将编译结果发布到Github上了。

gh-pages -d _book

gitbook热更新时报错operation not permitted的更多相关文章

  1. npm run build 时报错operation not permitted

    1.项目使用vue框架,在npm run build 打包时报错: 访问对应的目录,发现无法打开,原来是文件被其他应用程序占用了,仔细看了一下,xftp文件传输的软件打开着,把它关闭以后,重新运行np ...

  2. Vue热更新报错(log.error('[WDS] Errors while compiling. Reload prevented.'))

    log.error('[WDS] Errors while compiling. Reload prevented.');中的WDS其实是webpack-dev-serverwebpack的意思,用来 ...

  3. 使用npm install报错- operation not permitted解决

    原文:https://blog.csdn.net/weixin_41715295/article/details/79508104 这几天使用npm install时一直报错-4048 operati ...

  4. Mybatis Oracle 更新时报错17090

     更新数据库时报错   查看数据库里的数据是已经更新了 . 我开始用的是注解@Update("......")调试了好久都找不到原因,因为单独执行更新语句是正确的,在项目里运行,数 ...

  5. npm在linux即mac下更新时报错

    nam在linux即mac下需要更新到新版本:

  6. Django 字段更新时报错

    字段更新时会报错: -------------------------------------------------------------- 无法向未定义字段添加默认值您确认添加默认值吗? 请添加 ...

  7. AndroidStudio更新时报错:Connection Error,Temp directory inside installation

    场景 在将Android Studio的 .AndroidStudio目录修改为别的目录后,打开AS,提示更新,点击更新后提示: Connection Error,Temp directory ins ...

  8. setfacl报错Operation not supported

    对文件目录setfacl权限设置时报错Operation not supported Google一下,发现是分区acl权限问题 一般情况下(ext4),默认acl支持都是加载的.但如果遇到二般情况, ...

  9. 解决Linux 下 root用户删除文件提示:Operation not permitted

    问题描述 用最高权限rm文件,居然报错Operation not permitted.查看权限也没有问题.可想而知有可能文件被保护了.用命令lsattr检查一下就知道. [root@linux roo ...

随机推荐

  1. Jvm调优理论篇

    Jvm实战调优 OOM(Out Of Memory) 内存溢出错误 ps:由于Java虚拟机有许多实现,本文主要阐述的是OpenJDK的HotSpot虚拟机,JDK版本是8. 一.首先要明白造成OOM ...

  2. Shell系列(31)- 双分支if语句简介

    双分支if条件语句 if [ 条件判断式 ] then 条件成立,执行的程序 else 条件不成立,执行的程序 fi 需求 根据用户输入的目录名,判断是否存在 脚本: #!/bin/bash #使用r ...

  3. mogoose 创建数据库并增删改查

    下载 npm i mongoose -s 连接数据库 const mongoose = require("mongoose"); mongoose.connect(dbURL); ...

  4. Spirit带你了解CSS各个方向的居中方案

    水平居中和垂直居中的方案 先看HTML的骨架 后面的代码都是基于这个来写的 <!DOCTYPE html> <html lang="en"> <hea ...

  5. JMeter多个线程组的使用说明

    Run Thread Groups consecutively (i.e one at a time),即独立运行每个线程组(例如在一个组运行结束后启动下一个) https://help.aliyun ...

  6. centos虚拟机中挂新硬盘

    配置一台centos7,主硬盘20G装系统:副硬盘20G作为数据盘(格式:XFS)挂载到根目录:/vdir/ ,XFS是高性能文件系统. 外层vm硬盘添加好后,执行下面 1.fdisk -l //查看 ...

  7. centos7 设置dns

    查看当前网络连接 nmcli connection show NAME UUID TYPE DEVICE eth0 5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03 802-3 ...

  8. P3291-[SCOI2016]妖怪【凸壳】

    正题 题目链接:https://www.luogu.com.cn/problem/P3291 题目大意 给出 \(n\) 个数字对 \((atk,dnf)\),求一个\((a,b)\). 对于每个数字 ...

  9. 神器----IntelliJ IDEA基本配置

    介绍 首先是百度百科对于 IDEA 的介绍 IDEA 全称 IntelliJ IDEA,是java编程语言开发的集成环境.IntelliJ在业界被公认为最好的java开发工具,尤其在智能代码助手.代码 ...

  10. FastAPI(56)- 使用 Websocket 打造一个迷你聊天室

    背景 在实际项目中,可能会通过前端框架使用 WebSocket 和后端进行通信 这里就来详细讲解下 FastAPI 是如何操作 WebSocket 的 模拟 WebSocket 客户端 #!usr/b ...