#nativescript #nativescript-plugin
#nativescript #nativescript-плагин
Вопрос:
Я создал свой первый плагин: https://www.npmjs.com/package/nativescript-ftp-client И он работает в режиме разработки (используя начальный проект), но когда я его упаковываю, приложение сообщает, что не может найти ftp-worker-android.js проблема с файлом, который включен, заключается в том, что я использую new Worker('./ftp-worker-android.js');
, и он выдает ошибку. Если я пытаюсь включить его в import в начале файла, он включается, поэтому я знаю, что он есть в пакете, но worker, похоже, не может загрузиться, это выдает следующую ошибку: JS: [Error: com.tns.NativeScriptException: Failed to find module: "./ftp-worker-android.js", relative to: app//
Комментарии:
1. Происходит ли это при сборке webpack (
--bundle
)?2. Да, я использую свое приложение в режиме —bundle
Ответ №1:
Вы должны условно использовать nativescript-worker-loader
плагин для инициализации worker в сборках webpack.
var worker;
if (global.TNS_WEBPACK) {
var GrayscaleWorker = require('nativescript-worker-loader!./ftp-worker-android.js');
worker = new GrayscaleWorker();
} else {
worker = new Worker('./ftp-worker-android.js');
}
Комментарии:
1. Поскольку я разрабатываю плагин на обычном JS, есть ли способ сделать это внутри плагина, чтобы пользователям, использующим этот плагин, не нужно было изменять конфигурацию webpack? Как я вижу в руководстве по установке плагина, вам необходимо включить этот плагин в webpack.config.js
2. Это не имеет ничего общего с конфигурацией webpack. Приведенный выше код является просто заменой вашего оператора require в плагине