Создайте плагин gitbook локально, не публикуя его

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

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

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

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

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

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


person uli_1973    schedule 17.06.2015    source источник


Ответы (3)


Вы можете пропустить первоначальную публикацию в 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, но принцип тот же.


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

person Ryan Kennedy    schedule 16.09.2015
comment
Спасибо. Я поищу возможность проверить, прежде чем принять ответ, но он выглядит многообещающе. - person uli_1973; 17.09.2015

Плагин 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 без публикации.

person aleung    schedule 30.05.2016

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

Что возможно:

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

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

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

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

person uli_1973    schedule 18.06.2015