28 lines
792 B
JavaScript
28 lines
792 B
JavaScript
|
import * as esbuild from 'esbuild'
|
||
|
import { readFileSync } from 'fs'
|
||
|
|
||
|
const packageJSON = JSON.parse(readFileSync(new URL('../package.json', import.meta.url)))
|
||
|
|
||
|
export const esbuildOptions = {
|
||
|
entryPoints: [ './src/peertube.ts' ],
|
||
|
bundle: true,
|
||
|
platform: 'node',
|
||
|
format: 'esm',
|
||
|
target: 'node16',
|
||
|
external: [
|
||
|
'./lib-cov/fluent-ffmpeg',
|
||
|
'pg-hstore'
|
||
|
],
|
||
|
outfile: './dist/peertube.js',
|
||
|
banner: {
|
||
|
js: `const require = (await import("node:module")).createRequire(import.meta.url);` +
|
||
|
`const __filename = (await import("node:url")).fileURLToPath(import.meta.url);` +
|
||
|
`const __dirname = (await import("node:path")).dirname(__filename);`
|
||
|
},
|
||
|
define: {
|
||
|
'process.env.PACKAGE_VERSION': `'${packageJSON.version}'`
|
||
|
}
|
||
|
}
|
||
|
|
||
|
await esbuild.build(esbuildOptions)
|