Based on index.js in the built version of Paragraph Extractor, node:fs, node:os, node:util, and node:tty are both used by the plugin. These libraries are unavailable on mobile.
I suspect that fs, os, util, and tty are being required by i18n, though they could also be required by moment. Both libraries are imported in extractParagraphs.ts.
On mobile, plugins run in a WebView, without access to NodeJS APIs. i18n has an open GitHub issue requesting support for web browsers, so likely won't work in a mobile-compatible Joplin plugin.
Possible fixes:
- Migrate to an
i18n library that supports running within a browser JavaScript environment.
- Use custom localization logic (e.g. different JavaScript objects for different locales). (Example).
- Require
i18n dynamically and only support localization on desktop.
Additional notes:
Be aware that the joplin.views.menus API is currently desktop-only. While it's possible to register menus with joplin.views.menus on mobile, they won't be visible in the UI.
Two possible alternatives are joplin.views.toolbarButtons and joplin.views.panels. The joplin.versionInfo API can be used to determine whether the current device is mobile or desktop.
Edited: Reformatting, linked to additional information about the i18n incompatibility, and added a section about other possible incompatibilities.