@nirvimel

Как правильно реализовать модули в юзерскриптах (userscript)?

Не нашел в Сети никакой информации о том, как следует разрабатывать проекты юзерскриптов. Очевидно, что любой проект крупнее HelloWorld внутри должен иметь модульную структуру, особенно, если одни модули используются во множестве разных проектов и в то же время сами (до)разрабатываются.

https://wiki.greasespot.net/Third-Party_Libraries - все это не то, это касается только сторонних библиотек, которые уже лежат в Сети, но не модулей собственного проекта в разработке.

Я только начал писать небольшую автоматизацию действий на одном сайте и у меня уже куча скриптов, состоящих на 90% из общего кода, который я где-то дорабатываю, куда-то забываю скопировать обновленный... в общем, не успев начать, я уже попал в ад копипастинга, куда попадают все нарушители принципа DRY.
  • Вопрос задан
  • 227 просмотров
Решения вопроса 1
Sanasol
@Sanasol Куратор тега JavaScript
нельзя просто так взять и загуглить ошибку
Это же обычное JS приложение. Соответственно работать как с JS.
Любой фреймворк использовать и т.п.
Структура соответствующая.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Общий код вынести в "библиотеку", например, в виде:
window.unsafeWindow = window.unsafeWindow || window;
const w = unsafeWindow;
w.Lib = {
 Foo: function(){},
 ...
}
w.Lib.Bar = {
  ...
}

и так далее. И подгружать его через директиву // @run-at document-start
Зависимые от общего кода вещи - подгружать через // @run-at document-end
Пример: https://github.com/dimio/userscripts-spacom.ru-addons
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы