Вопрос:
При запуске программно (через терминал / оболочку) есть ли способ убедиться, что приложение Sketch сначала открывает файл, а затем запускает скрипт плагина?
То, что я пробовал до сих пор:
Я пытаюсь открыть файл эскиза, а затем запустить программный скрипт плагина (через терминал).
Вот код плагина / скрипта:
function onRun(context) {
var sketch = require('sketch')
var document = sketch.getSelectedDocument()
log('context: ' + context);
log('Document name: ' + document.name());
}
Вот команда, которую я использую в терминале, чтобы открыть эскизный документ и запустить скрипт плагина на нем.
Команда терминала:
$ sketchtool run /path/of/plugin/pluginExample.sketchplugin "" "/path_of_sketchfile/filename.sketch"
Вывод команды терминала:
context: {
api = "<MOJavaScriptObject: 0x6000008213a0>";
command = "<MSPluginCommand: 0x6000000f9580>";
document = "<MSDocument: 0x7fd0bfef5b30>";
plugin = "<MSPluginBundle: 0x6000000f9880>";
scriptPath = "/path/of/plugin/pluginExample.sketchplugin/Contents/Sketch/run.js";
scriptURL = "file:////path/of/plugin/pluginExample.sketchplugin/Contents/Sketch/run.js";
selection = (
);
}
TypeError: undefined is not an object (evaluating 'document.name')
line: 8
Проблема, которую яподозреваемый:
Похоже, проблема в том, что скетч не открывает файл перед запуском скрипта плагина.Я убедился, что файл существует по указанному пути.