6

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

但是,我觉得关于这个问题的文档有点稀疏,从现有插件中读取代码在这个问题上对我没有多大帮助:

如何在发布插件之前对其进行测试。文档给出了插件外观的一些提示,然后告诉我发布它。

当然我还不想这样做,我想在发布之前在本地开发和测试它。但我不明白如何做到这一点。

我试图在里面复制一个已安装的插件/usr/lib/node_modules/gitbook-cli/node_modules/创建我的新插件,但是当我尝试在书中使用该插件时,我收到错误消息,告诉我通过.npm

有没有办法在不首先在 npm 上发布插件的情况下使用插件(用于测试或一般情况下)?

4

3 回答 3

5

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

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) 声明非命名空间名称。

于 2015-09-16T22:38:58.267 回答
3

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

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

首先,在您的 gitbook 插件文件夹中,运行以下命令以创建全局安装的插件符号链接:

npm link

接下来在您的 gitbook 文件夹中,运行以下命令以链接 gitbook 文件夹global gitbook-plugin-name下的符号链接node_modules

npm link gitbook-plugin-name

book.json. 现在您可以在 gitbook 中测试插件而无需发布。

于 2016-05-30T06:03:36.757 回答
1

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

可能的是:

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

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

必须看到的是,一旦准备好,修改后的插件如何(如果)发布。

您现在在 npm 上发布了一个完全无法展示的插件,这可能被认为是一个(或多或少严重的)缺点。

于 2015-06-18T07:40:24.600 回答