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

时间:2015-06-17 16:25:07

标签: node.js plugins gitbook

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

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

如何在发布插件之前测试插件。 documentation给出了插件必须看的一些提示,然后它告诉我发布它。

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

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

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

3 个答案:

答案 0 :(得分:5)

您可以通过将插件目录符号链接到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的namespaced packages将您的插件发布到私有命名空间(例如@uli_1973/awesome-plugin)。然后,当您准备好进行大型活动时,您可以声明插件的非命名空间名称(awesome-plugin)。

答案 1 :(得分:3)

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

Npm提供link命令来处理这种情况。

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

npm link

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

npm link gitbook-plugin-name

book.json中配置您的插件。现在,您可以在没有发布的情况下测试gitbook中的插件。

答案 2 :(得分:1)

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

可能的是:

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

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

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

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