2015-06-17 4 views
5

Я хочу научиться писать плагины для gitbook (потому что я хочу использовать его и вам понадобятся пользовательские плагины).Создайте плагин gitbook локально, не публикуя его

Однако я считаю, документация немного разреженным по этому вопросу, и чтение кода из существующих плагинов не поможет мне очень в этом вопросе:

Как я могу проверить плагин перед публикацией. documentation дает некоторые подсказки о том, как должен выглядеть плагин, а затем он предлагает мне опубликовать его.

Конечно, я не хочу этого делать, я хочу разработать и протестировать его локально перед публикацией. Но я не понимаю, как это можно сделать.

Я попытался скопировать установленный плагин внутри /usr/lib/node_modules/gitbook-cli/node_modules/, чтобы создать свой новый плагин, но когда я пытаюсь использования плагин в книге, которую я получаю сообщение об ошибке говорит мне установить плагина через npm.

Есть ли способ использовать плагин (для тестирования или, возможно, вообще) без предварительного опубликования его на npm?

ответ

1

Это не окончательный ответ (поэтому я не буду «принимать» его), но обходной путь, который я нашел, который может быть приемлемым, в зависимости от обстоятельств.

Что можно есть:

  • Написать (предварительный) плагин
  • публикации в НПМ
  • Добавьте плагин к книге book.json
  • перспективе gitbook install в каталоге книги

Это будет скачать и установить плагин внутри книги node_module. Изменение файлов JavaScript будет вступать в силу при последующих сборках gitbook. Поэтому вы можете продолжить разработку своего плагина на местном уровне.

Что должно быть видно, как (если) этот модифицированный плагин можно опубликовать, как только он будет готов.

И это может считаться (более или менее серьезным) недостатком, который у вас теперь есть полностью непредставимый плагин, опубликованный на npm.

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, но концепция такая же.


Отдельно от моего ответа выше, вы могли бы использовать НПМ namespaced packages опубликовать плагин для частного пространства имен (например, @uli_1973/awesome-plugin). Затем, когда вы будете готовы к большому времени, вы можете потребовать имя без имени для своего плагина (awesome-plugin).

+0

Спасибо. Я буду искать возможность проверить, прежде чем принимать ответ, но он выглядит многообещающим. –

2

Плагин gitbook - это просто модуль NPM. Вы можете использовать способ разработки модуля npm локально в разработке плагина gitbook.

Npm предоставляет команду link для обработки этой ситуации.

Во-первых, в вашей папке gitbook плагин, запустите следующую команду, чтобы создать глобально установленную символическую ссылку на ваш плагин:

npm link 

Далее в папке gitbook, запустите следующую команду, чтобы связать global gitbook-plugin-name символическую ссылку под вашим node_modules папка gitbook в:

npm link gitbook-plugin-name 

Настройте плагин в book.json. Теперь вы можете протестировать плагин в своей gitbook без публикации.