Что такое формат файла JSX?
Файл .jsx в экосистеме Adobe - это сценарий автоматизации ExtendScript, программа на базе JavaScript для управления приложениями Adobe Creative Cloud, такими как Photoshop, Illustrator, InDesign и After Effects. ExtendScript основан на стандарте ECMAScript 3 (не современный ES6+) и дополняет его специфической для Adobe объектной моделью DOM (объекты типа app, document, layer), а также служебными классами, такими как File, Folder и ScriptUI для создания простых диалоговых интерфейсов.
Сценарии обычно начинаются с директивы #target (например, #target photoshop), которая указывает движку ExtendScript, к какому приложению следует обращаться. Типичные задачи включают пакетный экспорт файлов, изменение размера слоев, генерацию PDF из шаблонов и автоматизацию повторяющихся производственных процессов.
Расширение .jsx также используется библиотекой React для исходных файлов JSX (JavaScript XML) - это совершенно другой контекст. При обнаружении файла .jsx его значение определяется окружающим проектом (папка со скриптами Adobe или проект веб-разработки).
Скомпилированная, обфусцированная форма файла ExtendScript имеет расширение .jsxbin, которое скрывает исходный код, оставаясь исполняемым для движка Adobe. Сценарии можно запускать из меню «Сценарии» приложения, через расширение ExtendScript Debugger для VS Code или с помощью межпрограммных сообщений BridgeTalk.
Adobe постепенно заменяет ExtendScript на UXP (Unified Extensibility Platform), использующую современные движки JavaScript, хотя ExtendScript по-прежнему поддерживается в большинстве текущих приложений Creative Cloud.
Безопасность и защита
РИСК: MEDIUMФайл .jsx является исполняемым кодом. ExtendScript может читать, записывать и удалять файлы на диске (через объекты File/Folder) и управлять хост-приложением, поэтому запуск .jsx из ненадежного источника может быть опасен. Сначала изучите сценарий в текстовом редакторе, опасайтесь операций с файловой системой или сетью и включайте опцию «Разрешить сценариям запись файлов и доступ к сети» только для доверенных скриптов. Исходный код React .jsx - это тоже просто код, к нему применимы те же меры предосторожности перед запуском инструментов сборки.
Детали формата
в двух словах- React JSX (JavaScript XML) - Исходные файлы для компонентов React, смешивающие JavaScript с XML-подобной разметкой; транспилируются Babel, не связаны с Adobe.
- Общий JavaScript с синтаксисом JSX - Любой файл инструментария JS, использующий синтаксис JSX (Preact, Solid и т. д.); файл исходного кода разработчика, а не сценарий Adobe.
Программы, открывающие файлы JSX
Технические подробности
глубокая спецификация| Кодировка | Текст, UTF-8 (с поддержкой BOM); устаревшие файлы могут использовать ASCII или Latin-1 |
| Контейнер | Простой текст |
| Шифрование | Отсутствует (скомпилированный/обфусцированный вариант - .jsxbin) |
| Типичный размер | от 1 КБ до нескольких сотен КБ |
| Язык сценариев | ECMAScript 3 с расширениями Adobe DOM (объекты app, document, layer) и ScriptUI для создания диалогов |
| Директива таргетинга | Необязательная строка препроцессора #target <имя_приложения> или //@target направляет сценарий в нужное приложение Adobe |
| Скомпилированная форма | .jsxbin - закодированная/защищенная бинарная форма, скрывающая исходный код и остающаяся исполняемой для движка Adobe |
| Связанные ОС | Windows, macOS |
| Среда выполнения | Движок Adobe ExtendScript, встроенный в приложения Creative Cloud; отладка через расширение VS Code ExtendScript Debugger |
| Заменяется на | Adobe UXP (Unified Extensibility Platform) с современными движками JavaScript в новых приложениях Creative Cloud |
| Конфликт имен | .jsx также используется для исходных файлов React JSX (JavaScript XML) - совершенно отдельный формат, не связанный с Adobe |
| Выпущен | Early 2000s (Adobe Creative Suite scripting; ExtendScript based on ECMAScript 3) |
| Последняя версия | ExtendScript (ECMAScript 3-based) with the ExtendScript Toolkit/VS Code debugger; modern UXP is its successor |
| Открыть стандартное | Да · без роялти |
| Спецификация | extendscript.docsforadobe.dev |
Конвертации JSX
Вопросы и ответы сообщества
спрошено пользователямиВопросов пока нет - станьте первым, кто спросит о файлах JSX.