Как работать с Javascript-ом в Static Resource

Как работать с Javascript-ом в Static Resource

Всем привет,

пишу ВФ страницу с "высоким содержанием" Javascript. Достигаю момента, когда базовый функционал уже работает, "от сердца отлегло" и появилось желание навести немного порядка, привести содержание страницы в "человеческий вид", и в первую очередь вывести Javascript в отдельный файл, который в СФ будет одним из Static Resource (еще можно вывести Javascript и CSS в отдельные ВФ компоненты и включить их в страницу).

ОК, выводим Javascript в Static Resource. Но как дальше с ним работать?

Возьмем, например, "традиционные" IDE, такие как Eclipse и Консоль разработчика.

В Эклипсе Static Resource, содержащий Javascript, открывается просто серым куском текста без всякой подсветки и прочего, что не удивительно, так как расширение у файла ".resource", кроме того я не уверен что в базовой версии Эклипсе есть стандартный функционал для работы с Javascript.

Кто-нибудь помнит как работать с Javascript в Эклипсе в целом и с Javascript в виде Static Resource в частности?

в Консоли разработчика немного веселее:
сначала Static Resource вообще не открывается вот с такой ошибкой:
Only resources with a MIME Type of application/javascript, text/javascript, application/xml, text/xml, text/css, text/plain can be opened. The resource my_js has a MIME type of application/x-javascript.

contentType не меняется через UI, так что меняем его в ".resource-meta.xml", сохраняем, перегружаем консоль, и вот теперь открывается.

Есть базовая подсветка, что уже лучше, но тем менее Консоль не выглядит лучшим местом для работы с javascript.
Может у вас есть больше опыта с работой с javascript в консоли, и есть мысли поделится?

Кстати, а какая разница между MIME type application/x-javascript и application/javascript?

Как вы работаете с Javascript-ом в виде Static Resource? Какие IDE используете?

PS: также, как я понимаю, полностью убрать javascript с ВФ страницы в отдельные файле не получится: например, я должен передать ВФ переменную как аргумент в javascript функцию, и это не работает во "внешнем" скрипте

Я привык работать с mavensmate плагином. Там в меню(ctrl+shift+p) есть простые 2 комманды:


  • create resource bundle
  • (распаковать нужный статик ресурс в отдельную папку)
  • deploy resource bundle
  • (задеплоить статик ресурс с последними изменениями)

Правда, наверное, уже пора искать ему замену из-за прекращения поддержки.

Den Brown
PS: также, как я понимаю, полностью убрать javascript с ВФ страницы в отдельные файле не получится: например, я должен передать ВФ переменную как аргумент в javascript функцию, и это не работает во "внешнем" скрипте

Всё правильно.

В MM и в IC2 есть возможность работать с содержимым статик ресурса как с обычной папкой. Погугли и узнаешь как это просто и полезно.

На счет убрать - можно и весь JS убрать со страницы. А если хочется передавать переменные из Apex, то их можно тупо вывести в любой html тег на страницу, а в JS (который в статик ресурсе) считать. Это может быть как простой скрытый div, или к примеру meta тег в хедере.

vs code поддерживает вроде работу со статик ресурсами напрямую (даже с зип архивами).
я пытаюсь на него пересесть с мавенс мейта - пока все еще очень не удобно.
толкового запуска тестов или code coverage еще не прикрутили.

отказался от идеи хранить Javascript и CSS в Static Resource:

(1) Static Resource с Javascript хоть и открывается в Дев Консоли, но категорически не хочет сохраняться;
(2) Опять таки референсы не работают в Static Resource, например CSS со ссылкой на картинку в Static Resource не будет работать.

проще вывести Javascript и CSS в отдельные ВФ компоненты, включить их в страницу, и уже работать с ВФ компонентами

Den Brown
в Дев Консоли

Ты еще работаешь в девконсоли??????????????????

Den Brown
Опять таки референсы не работают в Static Resource, например CSS со ссылкой на картинку в Static Resource не будет работать.

Разве не работает? Вроде ж работает. НО в пределах одного ZIP архива. Надо просто путь указывать относительный текущего файла, а не абсолютный (который начинается с "/")

Dmitry Shnyrev
в пределах одного ZIP архива

вот так действительно будет работать

Interesting information? Help us, post link to social media..