Вы можете создать временный скрипт js и запустить его с помощью ESTK. Проще, если вы используете инструмент сборки, такой как Gulp / Grunt / Webpack.
Вот базовый c пример для задачи Gulp на Windows, используя NodeJS:
const exec = require('child_process').exec;
const path = require('path');
const fs = require('fs');
const del = require('del');
const log = require('gutil-color-log'); // OPTIONAL
var myJSFilePath = 'PATH\\TO\\MY\\JS\\FILE.jsx';
exports.encodeToJSXBIN = toJSXBIN;
function toJSXBIN (done)
{
var jsxbinFilePath = path.join(path.dirname(myJSFilePath), path.parse(myJSFilePath).name + '.jsxbin'), // Will be written in the same folder as your .jsx file
compilerScriptPath = path.join('FOLDER\\PATH\\TO\\TEMPORARY\\SCRIPT', 'compiler.jsx'),
estkPath = "PATH\\TO\\ExtendScript Toolkit.exe", // Could be: C:\\Program Files (x86)\\Adobe\\Adobe ExtendScript Toolkit CC\\ExtendScript Toolkit.exe
estkCommand = JSON.stringify(estkPath) + ' -cmd ' + JSON.stringify(compilerScriptPath),
compilerScript = "#target estoolkit#dbg\n" +
"\n" +
"var jsxbinContent, jsxbinFile;\n" +
"\n" +
"jsxbinContent = app.compile(" + JSON.stringify(fs.readFileSync(myJSFilePath, 'utf8')) + ");\n" +
"jsxbinFile = File(" + JSON.stringify(jsxbinFilePath) + ");\n" +
"jsxbinFile.open(\"w\");\n" +
"jsxbinFile.write(jsxbinContent);\n" +
"jsxbinFile.close();";
fs.writeFileSync(compilerScriptPath, compilerScript);
exec(estkCommand, (err, stdoutA, stderrA) =>
{
if (err)
{
log('red', err.toString()); // OPTIONAL
done();
}
del([compilerScriptPath], {force: true}); // Remove the temporary compiler.jsx file
/*
- OPTIONAL step
- single line .jsxbin file
- you can also replace .jsxbin extension with .jsx if you want
*/
fs.writeFileSync(jsxbinFilePath, fs.readFileSync(jsxbinFilePath, 'utf8').replace(/[\r\n]+/gm, ''));
done();
});
}
РЕДАКТИРОВАТЬ # 1:
Пока вы не ознакомитесь с NodeJS и Gulp или любым другим инструментом сборки, я сделал быструю настройку, которую вы можете использовать.
Установить NodeJS: https://nodejs.org/en/
Открыть CMD / терминал / GitBash (https://git-scm.com/downloads ) в папке примеров «Export_to_JSXBIN».
Установите Gulp в глобальном масштабе: npm install -g gulp
Затем: npm install
Поместите ваши файлы .jsx /. js, которые вы хотите закодировать, в 'jsx_sources'
Из командной строки введите: gulp encodeJS
Будет создана новая папка 'jsx_encoded', которая будет содержать файлы .jsxbin с расширением, измененным на .jsx, и весь контент, отформатированный в одну строку.
Конечно, вы можете оставить расширение без изменений и написать код d JS в той же папке, что и исходный файл, если это соответствует вашим потребностям.
Содержание 'gulpfile. js' должно быть легко понять.
Ооо .. и проверьте путь ESTK (var estkPath), особенно если вы на ма c.
Export_to_JSXBIN Образец глотка: https://url.io/export_to_jsxbin
Задачи Gulp также можно запускать из вашей IDE. Я уверен, что вы можете найти расширение для этого.