尝试使用 webpack。
在我的一个项目中,我不得不调用 Javascript(因为网络上的隔离不能按预期工作)。我用javascript创建了一个单独的项目,并将webpack脚本直接编译到flutter web文件夹中。当然,我没有使用任何 npm 包,但我不明白为什么它不应该工作。
这是我的 webpack.config.js(/src/worker.js 是入口 javascript 文件):
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')
}
}
在您的 Dart 代码中,您可以使用 Worker 类来调用脚本,例如:
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));
** 更新:这是接收调用的工作人员('./src/worker.js')的样子:
import algorithm from './index';
onmessage = async function(messageEvent) {
let event=JSON.parse(messageEvent.data);
let message=await algorithm (event);
postMessage(message);
}