Я пишу R-пакет под названием slidify, который упрощает создание воспроизводимых слайдов HTML5 из файлов R Markdown. Пакет использует файлы css и js из нескольких существующих фреймворков слайдов HTML5, таких как dzslides, deck.js и т.д. В настоящее время я организовал загруженные версии этих внешних активов в папке inst/libraries в slidify, так что он будет автоматически доступен для пользователей при установке. Хотя этот подход прост, есть некоторые недостатки:
-
Эти рамки постоянно обновляются на
github. При текущей настройке мне придется подталкивать новую версию пакета каждый раз, когда обновляется какая-либо из этих фреймворков. -
Если я сделаю какие-либо изменения по умолчанию
cssиjs, которые поставляются с этими фреймворками, тогда мне нужно тщательно объединить обновления, чтобы я не потерялslidifyопределенные настройки.
У меня было несколько мыслей о том, как управлять этим.
-
Не упаковывайте эти библиотеки с помощью
slidify. Вместо этого предоставьтеfunction, который позволит пользователям добавлять необходимые им рамки. -
Добавьте эти фреймворки в папку
inst\librariesнаslidify, но какsubmodules. Теперь я не знаю, добавить ли их какsubmodules, чтобы они были установлены, если кто-то должен был использоватьdevtools::install_github.
Итак, мой вопрос заключается в написании пакета R, как я могу управлять внешними зависимостями, отличными от R, которые постоянно обновляются?