Проблема с использованием worker в плагине nativescript

#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 в плагине