乐趣区

关于程序员: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

本文由博客一文多发平台 OpenWrite 公布!

退出移动版