Пакеты npm или API Node.js в плагинах XD
Я пытаюсь создать плагин для Adobe XD. Я хотел бы использовать несколько пакетов npm вместе с некоторыми API-интерфейсами Node.js внутри моего кода. Будет ли это возможно?
2 ответа
На странице поддержки Javascript сказано, что вы можете использовать некоторые пакеты npm (для некоторых может потребоваться веб-пакет). Однако apis Node.js не поддерживаются.
Могу ли я использовать пакеты npm или API Node.js?
Возможно, вы сможете использовать некоторые пакеты npm без изменений, но велика вероятность, что вам понадобится использовать веб-пакет или накопительный пакет, чтобы сгенерировать пакет.
Сами API-интерфейсы Node.js не поддерживаются.
Вы можете использовать некоторые пакеты npm в своем плагине Adobe XD, но вам нужно помнить о следующих ограничениях:
XD-х
require
функция не соответствует разрешению в стиле узла. То есть,require('module')
не будет автоматически разрешено вnode_modules/module/index.js
, Для решения этой проблемы вам нужно использовать пакет, например, веб-пакет. Для примера использования webpack и React см. Пример ui-hello-реагировать.Среда JavaScript XD не предоставляет много API узлов, на которые могут положиться многие модули узлов. Например, пакеты npm, которые используют Node's
fs
модуль не будет работать внутри плагинов Adobe XD. Однако чисто алгоритмические пакеты npm должны работать, если они полагаются только на саму спецификацию JavaScript.Кроме того, среда HTML5 DOM API, предоставляемая Adobe XD, может оказаться недостаточной, если ваш пакет npm использует определенные API-интерфейсы браузера. Например, API-интерфейс Web Audio недоступен для подключаемых модулей Adobe XD, поэтому любые пакеты npm, требующие использования этого модуля, не будут работать.
Для некоторых пакетов может быть достаточно добавить заглушки или полифилы. Например, вы можете заглушки requestAnimationFrame
если модуль требует это, вот так:
global.requestAnimationFrame = cb => cb();
Теперь это не функциональный rAF, но этого может быть достаточно для используемого вами пакета.