Add esbuild support

This commit is contained in:
Maximilian Ammann 2022-04-26 11:40:54 +02:00
parent 5bd77ec527
commit 6630fcda7b
4 changed files with 35 additions and 5 deletions

29
web/lib/build.mjs Normal file
View File

@ -0,0 +1,29 @@
import { build } from 'esbuild';
import metaUrlPlugin from '@chialab/esbuild-plugin-meta-url';
import inlineWorker from 'esbuild-plugin-inline-worker';
import envPlugin from '@chialab/esbuild-plugin-env';
let baseSettings = {
entryPoints: ['src/index.ts'],
bundle: true,
platform: "browser",
assetNames: "assets/[name]",
plugins: [
inlineWorker({
format: "cjs", platform: "browser",
target: 'es2022',
bundle: true,
assetNames: "assets/[name]",
}),
metaUrlPlugin(),
envPlugin()
],
};
const start = async() => {
await build({...baseSettings, format: "esm", outfile: "dist/esbuild-esm/module.js",});
await build({...baseSettings, format: "cjs", outfile: "dist/esbuild-cjs/main.js",});
await build({...baseSettings, format: "iife", outfile: "dist/esbuild-iffe/main.js", globalName: "maplibre"});
}
start()

View File

@ -15,7 +15,10 @@ import {
threads
} from "wasm-feature-detect"
const WEBGL = JSON.parse(process.env.WEBGL)
// @ts-ignore
import Worker from './pool.worker.js';
const WEBGL = process.env.WEBGL === "true"
const isWebGLSupported = () => {
try {
@ -96,7 +99,7 @@ const preventDefaultTouchActions = () => {
/*
let WORKER_COUNT = 4
const createWorker = (id: number, memory: WebAssembly.Memory) => {
const worker = new Worker(new URL('./legacy_worker.ts', import.meta.url), {
const worker = new Worker(new URL('./legacy.worker.ts', import.meta.url), {
type: "module",
})
worker.postMessage({type: "init", memory} as WebWorkerMessageType)
@ -141,9 +144,7 @@ export const startMapLibre = async (wasmPath: string | undefined, workerPath: st
const schedulerPtr = create_pool_scheduler(() => {
return workerPath ? new Worker(workerPath, {
type: 'module'
}) : new Worker(new URL("./pool_worker.ts", import.meta.url), {
type: 'module'
});
}) : Worker();
})
// setupLegacyWebWorker(schedulerPtr, memory)