bundle: true,
platform: 'browser',
entryPoints: [
- { in: './src/main.ts', out: 'main.min' },
+ { in: './src/main.ts', out: 'main.dev' },
{ in: './src/types.d.ts', out: 'types.d' }
],
loader: {
import { build } from 'esbuild'
import { options } from './esbuild-common.mjs'
+// Shared properties
options.drop = ['console', 'debugger']
+options.minifySyntax = true
+options.minifyWhitespace = true
+
+// Node build
+options.entryPoints = [
+ { in: './src/main.ts', out: 'nodejs.min' }
+]
+options.dropLabels = ['BROWSER']
+options.external = ['node:worker_threads']
+await build(options)
+
+// Browser build
+options.entryPoints = [
+ { in: './src/main.ts', out: 'browser.min' },
+ { in: './src/types.d.ts', out: 'types.d' }
+]
options.dropLabels = ['NODE']
options.inject = ['./buffer.mjs']
await build(options)
"build": "npm run clean && node esbuild-dev.mjs",
"build:node": "npm run clean && node esbuild-node.mjs",
"build:prod": "npm run clean && node esbuild-prod.mjs",
- "publish": "npm run build:prod",
+ "prepublishOnly": "npm run test:prod",
"test": "npm run build",
"test:node": "npm run build:node && node --test --test-force-exit --no-experimental-strip-types --env-file .env",
+ "test:prod": "npm run build:prod && node --test --test-force-exit --no-experimental-strip-types --env-file .env",
"test:coverage": "npm run test:node -- --experimental-test-coverage",
"test:coverage:report": "npm run test:coverage -- --test-reporter=lcov --test-reporter-destination=coverage.info && genhtml coverage.info --flat --dark-mode --keep-going --output-directory test/coverage && rm coverage.info && xdg-open ./test/coverage/libnemo/index.html"
},