gitbook热更新时报错operation not permitted
在使用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的更多相关文章
- npm run build 时报错operation not permitted
1.项目使用vue框架,在npm run build 打包时报错: 访问对应的目录,发现无法打开,原来是文件被其他应用程序占用了,仔细看了一下,xftp文件传输的软件打开着,把它关闭以后,重新运行np ...
- Vue热更新报错(log.error('[WDS] Errors while compiling. Reload prevented.'))
log.error('[WDS] Errors while compiling. Reload prevented.');中的WDS其实是webpack-dev-serverwebpack的意思,用来 ...
- 使用npm install报错- operation not permitted解决
原文:https://blog.csdn.net/weixin_41715295/article/details/79508104 这几天使用npm install时一直报错-4048 operati ...
- Mybatis Oracle 更新时报错17090
更新数据库时报错 查看数据库里的数据是已经更新了 . 我开始用的是注解@Update("......")调试了好久都找不到原因,因为单独执行更新语句是正确的,在项目里运行,数 ...
- npm在linux即mac下更新时报错
nam在linux即mac下需要更新到新版本:
- Django 字段更新时报错
字段更新时会报错: -------------------------------------------------------------- 无法向未定义字段添加默认值您确认添加默认值吗? 请添加 ...
- AndroidStudio更新时报错:Connection Error,Temp directory inside installation
场景 在将Android Studio的 .AndroidStudio目录修改为别的目录后,打开AS,提示更新,点击更新后提示: Connection Error,Temp directory ins ...
- setfacl报错Operation not supported
对文件目录setfacl权限设置时报错Operation not supported Google一下,发现是分区acl权限问题 一般情况下(ext4),默认acl支持都是加载的.但如果遇到二般情况, ...
- 解决Linux 下 root用户删除文件提示:Operation not permitted
问题描述 用最高权限rm文件,居然报错Operation not permitted.查看权限也没有问题.可想而知有可能文件被保护了.用命令lsattr检查一下就知道. [root@linux roo ...
随机推荐
- PHP大文件读取操作
简单的文件读取,一般我们会使用 file_get_contents() 这类方式来直接获取文件的内容.不过这种函数有个严重的问题是它会把文件一次性地加载到内存中,也就是说,它会受到内存的限制.因此,加 ...
- final关键字在PHP中的使用
final关键字的使用非常简单,在PHP中的最主要作用是定义不可重写的方法.什么叫不可重写的方法呢?就是子类继承后也不能重新再定义这个同名的方法. class A { final function t ...
- Nginx系列(6)- nginx: [error] CreateFile() "D:\nginx-1.20.1/logs/nginx.pid" failed (2: The system cannot find the file specified)
背景 修改nginx配置文件nginx.conf后,想要重启nginx使配置生效.cmd进入nginx安装目录,输入命令: nginx -s reload 报错:nginx: [error] Crea ...
- YbtOJ#853-平面标记【整体二分,凸壳】
正题 题目链接:http://www.ybtoj.com.cn/contest/119/problem/3 题目大意 给出\(n\)个点\((x_i,y_i)\),\(m\)次给出\((k_i,a_i ...
- serialVersionUID序列化版本号与ObjectOutputStream对象输入输出流
1. 观察ObjectOutputStream 我们观察ObjectOutputStream就可以发现该类没有无参构造,只有有参构造,所以他是一个包装流 2. 具体使用: public static ...
- openEuler 20.03/21.03 - 华为欧拉开源版(CentOS 8 华为版开源版)下载
开始 openEuler 之旅吧 openEuler 通过社区合作,打造创新平台,构建支持多处理架构.统一和开放的操作系统,推动软硬件应用生态繁荣发展. 好玩的活动停不下来 openEuler 社区不 ...
- Excel备忘录
1. 导入文本文件(.txt) 2. 排序 3. 批量填充空白 选定区域,Ctrl+G,定位,空值. 输入内容,Ctrl+Enter. 4. 清除无法修改的背景色. 5. 身份证号 数字精度为15位, ...
- 网络基础--简单理解什么是DNS? TCP? UDP? Http? Socket?
什么是IP 协议? 协议就是为了实现网络通信而创建的一系列规范. 通常我们的网络模型从上到下共分为4层: 应用层, 传输层, 网络层 和数据链路层. IP协议属于网络层协议,它精确定义了网络通信中 ...
- jmx_prometheus_javaagent+prometheus+alertmanager+grafana完成容器化java监控告警(二)
一.拓扑图 二.收集数据 2.1前期准备 创建共享目录,即为了各节点都创建该目录,有两个文件,做数据共享 /home/target/prom-jvm-demo 1.下载文件 jmx_prometheu ...
- GoLang设计模式11 - 备忘录模式
备忘录模式是一种行为型设计模式.这种模式允许我们保存对象在某些关键节点时的必要信息,以便于在适当的时候可以将之恢复到之前的状态.通常它可以用来帮助设计撤销/恢复操作. 下面是备忘录设计模式的主要角色: ...