在本地创build一个gitbook插件而不发布它

我想学习编写gitbook插件(因为我想使用它,将需要自定义插件)。

不过,我觉得文档在这个问题上有点稀疏,从现有的插件中读取代码在这个问题上帮不了我的忙:

如何在发布之前testing一个插件。 文档给出了一些关于插件如何查看的提示,然后告诉我发布它。

当然,我不想这样做,我想在发布前在本地进行开发和testing。 但我不明白怎么做。

我尝试在/usr/lib/node_modules/gitbook-cli/node_modules/下复制已安装的插件来创build我的新插件,但是当我试图在书中使用插件时,出现错误消息,告诉我要通过npm 安装插件。

有没有办法使用插件(用于testing,或者一般),而不是首先发布在NPM?

您可以通过将您的插件目录符号链接到您的node_modules目录来跳过最初的发布到NPM。 假设一个目录结构:

 projects/ my-book/ node_modules/ other_files... awesome-plugin/ plugin_files... 

那么你可以做

 cd projects/my-book/node_modules ln -s ../../awesome-plugin 

您可能需要将该插件添加到book.json才能注册,但是先尝试一下。 另外我假设一个* NIX环境; 您可能需要查看Windows的命令,但概念是相同的。


与我上面的答案分开,你可以使用NPM的命名空间包来发布你的插件到一个私有的命名空间(例如@uli_1973/awesome-plugin )。 然后,当你准备好了,你可以声明你的插件的名称空间名称( awesome-plugin )。

gitbook插件只是一个NPM模块。 你可以在开发gitbook插件的时候使用这种方式在本地开发npm模块。

Npm提供了链接命令来处理这种情况。

首先,在你的gitbook插件文件夹中,运行下面的命令来创build全局安装的插件到您的插件的符号链接:

 npm link 

接下来在你的gitbook文件夹中运行下面的命令来连接gitbook的node_modules文件夹下的global gitbook-plugin-name符号链接:

 npm link gitbook-plugin-name 

book.jsonconfiguration你的插件。 现在你可以在你的gitbook中testing插件而不需要发布。

这不是一个明确的答案(所以我不会“接受”它),而是我发现的一个解决方法,根据情况可以接受。

有什么可能的是:

  • 写一个(初步)插件
  • 发布到NPM
  • 将插件添加到书的book.json
  • 在本书目录中运行gitbook install

这将在本书的node_module目录下载并安装插件。 修改那里的JavaScript文件将在随后的gitbook构build中生效。 所以你可以继续在本地开发你的插件。

必须看到的是,一旦准备就绪,修改后的插件如何被发布。

这可能被认为是一个(或多或less严重)的缺点,你现在有一个完全不可预知的插件npm发表。