Как использовать модули ES6 в плагине Adobe XD? - PullRequest
2 голосов
/ 14 апреля 2020

Мне было интересно, смогу ли я использовать импорт ES6 из моих плагинов XD.

Всякий раз, когда я, например, использую import Vue from 'vue', задача сборки успешно завершается, однако XD выдает ошибку в консоли разработчика, когда загрузка плагина:

Plugin Error: Error loading plugin <settings>/develop/my_plugin
Plugin TypeError: Cannot assign to read only property 'exports' of object '#<Object>'
    at Module.<anonymous> (<settings>/develop/my_plugin/main.js:14367:16)
    at Module../src/router.js (<settings>/develop/my_plugin/main.js:14368:30)
    at __webpack_require__ (<settings>/develop/my_plugin/main.js:21:30)
    at Object../src/main.js (<settings>/develop/my_plugin/main.js:14267:16)
    at __webpack_require__ (<settings>/develop/my_plugin/main.js:21:30)
    at <settings>/develop/my_plugin/main.js:85:18
    at <settings>/develop/my_plugin/main.js:88:10
    at b.value (uxp://uxp-internal/home/ubuntu/jenkins/workspace/Torq/torq-native/release-3.3.8/build/modules_gen/js/runtime/src/js/runtime_scripts_loader.js:88:3563)
    at b.value (uxp://uxp-internal/home/ubuntu/jenkins/workspace/Torq/torq-native/release-3.3.8/build/modules_gen/js/runtime/src/js/runtime_scripts_loader.js:88:1015)
    at d.value (uxp://uxp-internal/home/ubuntu/jenkins/workspace/Torq/torq-native/release-3.3.8/build/modules_gen/pluginmanager/src/js/pluginmanager_scripts.js:95:2060)
    at convertPluginErrorToString (plugins/PluginErrorUtil.js:1:198)
    at safeGetStackTrace (plugins/PluginErrorUtil.js:1:339)
    at internalFormatPluginError (plugins/PluginErrorUtil.js:1:1073)
    at internalReportPluginError (plugins/PluginErrorUtil.js:1:1171)
    at Object.reportPluginError (plugins/PluginErrorUtil.js:1:1603)
    at loadPlugin (plugins/PluginLoader.js:1:1277)
    at plugins/PluginLoader.js:1:8993
    at Array.forEach (<anonymous>)
    at reloadPlugins (plugins/PluginLoader.js:1:8967)
    at Artwork.history.waitForCurrentEditBatch.then (plugins/PluginLoader.js:1:9642)

Я начал с примера диалога Hello Vue здесь и преобразовал его в Panel - но такая же ошибка возникает для примера диалога. Пакет. json и webpack.config. js не были изменены в этом процессе, поэтому libraryTarget остается commonjs2. Нужен ли мне дополнительный плагин для разрешения импорта модуля ES6?

В другом разделе об импорте и экспорте ES6 напрямую не упоминается, что он поддерживается Adobe XD: Можно ли использовать функции ES2015 + (ES6 ) в плагинах Adobe XD?

Поскольку у меня есть распространенная база кода, использующая ES6 Imports and Exports, я бы хотел добавить ее и использовать в плагине, не заменяя каждый оператор import на необходимое require утверждение.

Я могу привести минимальный пример, если требуется.

Спасибо за вашу помощь.

Best, Daniel

1 Ответ

3 голосов
/ 14 апреля 2020

Так что исправить это довольно просто - если вы знаете, как написать эти операторы экспорта.

В файле main.js замените

module.exports = {
    panels: {
        mainPanel: { show, hide, update }
      }
};

на

export const panels = {
    mainPanel: { show, hide, update }
}

согласно @kerrishotts в Twitter: https://twitter.com/kerrishotts/status/1249832641857114114

С этого момента вы можете использовать операторы import и export для всего проекта.

...