Utilisez les packages npm pour Flutter Web lorsque les plugins pub.dev n'ont pas de support Web

Oct 11 2020

J'essaie de créer une application en flutter, iOS + Android + Web mais quelques-unes. les plugins n'offrent pas de support Web.

J'ai trouvé des paquets npm du même sdk et je veux utiliser

flutter iOS + Android avec le plugin iOS + android sdk. flutter web + package npm sdk.

Existe-t-il un moyen d'utiliser les packages npm / node dans une application Web Flutter si les plugins n'ont pas de support Web?

Réponses

1 Andrija Oct 11 2020 at 20:11

Essayez d'utiliser webpack.

Dans l'un de mes projets, j'ai dû appeler Javascript (puisque les isolats sur le Web ne fonctionnent pas comme prévu). J'ai créé un projet séparé avec javascript et j'ai fait compiler le script Webpack directement dans le dossier Web Flutter. Certes, je n'ai utilisé aucun paquet npm, mais je ne vois pas pourquoi cela ne devrait pas fonctionner.

Voici mon webpack.config.js (/src/worker.js est le fichier javascript d'entrée):

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')
    }
}

Dans votre code Dart, vous pouvez utiliser la classe Worker pour appeler le script, quelque chose comme:

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));