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

uli*_*973 6 plugins node.js gitbook

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

但是,我觉得文档在这方面有点稀疏,从现有插件中读取代码对我这个问题没什么帮助:

如何在发布之前测试插件.该文档提供了有关插件必须如何查看的一些提示,然后它告诉我发布它.

当然我不想这样做,我想在发布之前在本地开发和测试它.但我不知道如何做到这一点.

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

有没有一种方法可以使用插件(用于测试或通常),而无需先在npm上发布它?

Rya*_*edy 5

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

projects/
  my-book/
    node_modules/
    other_files...
  awesome-plugin/
    plugin_files...
Run Code Online (Sandbox Code Playgroud)

那么你可以做到

cd projects/my-book/node_modules
ln -s ../../awesome-plugin
Run Code Online (Sandbox Code Playgroud)

您可能必须添加插件book.json才能使其注册,但不必先尝试.我也假设一个*NIX环境; 您可能必须查找Windows的命令,但概念是相同的.


与上述答案分开,您可以使用NPM的命名空间包将您的插件发布到私有命名空间(例如@uli_1973/awesome-plugin).然后,当您为大时间做好准备时,可以声明插件的非命名空间名称(awesome-plugin).


uli*_*973 1

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

可能的是:

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

这将下载并安装该插件到本书的node_module目录中。修改 JavaScript 文件将在后续 gitbook 构建中生效。因此您可以继续在本地开发您的插件。

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

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