Usa i pacchetti npm per flutter web quando i plugin pub.dev non hanno supporto web

Oct 11 2020

Sto cercando di creare un'app in flutter, iOS + Android + Web ma alcune. i plugin non offrono supporto web.

Ho trovato pacchetti npm dello stesso sdk e voglio usare

svolazzare iOS + Android con iOS + Android plugin sdk. flutter web + pacchetto npm sdk.

C'è un modo per utilizzare i pacchetti npm / node in un'app Web flutter se i plug-in non hanno il supporto web?

Risposte

1 Andrija Oct 11 2020 at 20:11

Prova a utilizzare webpack.

In uno dei miei progetti ho dovuto chiamare Javascript (poiché gli isolati sul web non funzionano come previsto). Ho creato un progetto separato con javascript e ho compilato lo script webpack direttamente nella cartella web di flutter. Certo, non ho usato alcun pacchetto npm, ma non vedo perché non dovrebbe funzionare.

Questo è il mio webpack.config.js (/src/worker.js è il file javascript della voce):

const CopyWebpackPlugin = require('copy-webpack-plugin');
const webpack = require('webpack');
const path = require('path');

module.exports = {
    mode: 'production',
    entry: './src/worker.js',
    output: {
        filename: '[name].bundle.js',
        path: path.resolve(__dirname, '../flutter_app/web/', 'my_js')
    }
}

Nel tuo codice Dart puoi usare la classe Worker per chiamare lo script, qualcosa come:

var myWorker = Worker('../my_js/main.bundle.js');
    myWorker.onMessage.listen((returnValue) {
//Some processing here...
});
var event = {"arg1": "value1", "arg2": "value2"};
myWorker.postMessage(json.encode(event));