09.08.2020Бармалей

Можно ли в TamperMonkey • CR подключить локальный файл скрипта без его загрузки в хранилище аддона?
Если "да" – как именно это можно сделать, чтобы изменения в этом файле сразу же применялись?

Да, такой вариант подключения возможен, для этого нужно создать в TMCR специальный "скрипт-заглушку", в котором задаётся переадресация (собственно подключение) на внешний файл с помощью директивы "@require" с аргументом в виде полного пути к нужному внешнему файлу (локальному скрипту) и добавкой протокола "file:///" перед путём.

Указанная "заглушка" может выглядеть примерно вот так:

Кроме того, чтобы директивы нормально работали в расширении, следует убедиться, что в блоке TMCR на странице chrome://extensions разрешён* доступ к локальным файлам:

* Это разрешение запрашивается по умолчанию, при установке расширения, но в данном случае лучше ещё раз убедиться, что галочка "на месте" и доступ к локальным файлам есть…)

Также необходимо помнить, что внешний скрипт при этом НЕ должен перемещаться или переименовываться (иначе вам придётся соответственно изменить путь в директиве подключения).

Таким образом вы можете подключить любой произвольный локальный файл скрипта. Изменять его код можно во внешнем редакторе либо путём загрузки и правки в редакторе TMCR с последующим копированием и сохранением во внеший файл.

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

Также можно использовать директиву "@resource", работающую аналогично.

Вы можете создать на вашем диске свою собственную "коллекцию" часто используемых библиотек и работать с ней без загрузки этих скриптов в хранилище TMCR. При этом не требуется сохранять такие файлы в хранилище и само расширение также будет "ворочаться веселее".

Дополнительным "плюсом" такого способа будет повышение общей скорости работы расширения (и браузера в целом), за счёт того, что локальные ресурсы в любом случае будут доступны и грузятся существенно быстрее, чем размещённые на удалённых сайтах или в CDN.

1-5 6-6
##-->
URLПоделиться

X