Use ESBuild for frontend build.
Replacing webpack by ESBuild for client code compilation (as in the official quickstart plugin). So we can remove deprecated webpack dependencies. Note: webpack is still used for ConverseJS build. This may be removed soon. Related to issue #122.
This commit is contained in:
54
build-client.js
Normal file
54
build-client.js
Normal file
@ -0,0 +1,54 @@
|
||||
const path = require('path')
|
||||
const esbuild = require('esbuild')
|
||||
|
||||
const packagejson = require('./package.json')
|
||||
const sourcemap = process.env.NODE_ENV === 'dev' ? 'inline' : false
|
||||
|
||||
const clientFiles = [
|
||||
// Client files list, without the file extension:
|
||||
'common-client-plugin',
|
||||
'videowatch-client-plugin',
|
||||
'admin-plugin-client-plugin'
|
||||
]
|
||||
|
||||
const configs = clientFiles.map(f => ({
|
||||
entryPoints: [ path.resolve(__dirname, 'client', f + '.ts') ],
|
||||
alias: {
|
||||
'shared': path.resolve(__dirname, 'shared/')
|
||||
},
|
||||
define: {
|
||||
PLUGIN_CHAT_PACKAGE_NAME: JSON.stringify(packagejson.name),
|
||||
PLUGIN_CHAT_SHORT_NAME: JSON.stringify(packagejson.name.replace(/^peertube-plugin-/, ''))
|
||||
},
|
||||
bundle: true,
|
||||
minify: true,
|
||||
// FIXME: sourcemap:`true` does not work for now, because peertube does not serve static files.
|
||||
// See https://github.com/Chocobozzz/PeerTube/issues/5185
|
||||
sourcemap,
|
||||
format: 'esm',
|
||||
target: 'safari11',
|
||||
outfile: path.resolve(__dirname, 'dist/client', f + '.js'),
|
||||
}))
|
||||
|
||||
configs.push({
|
||||
entryPoints: ["./conversejs/builtin.ts"],
|
||||
bundle: true,
|
||||
minify: true,
|
||||
sourcemap,
|
||||
target: 'safari11',
|
||||
outfile: path.resolve(__dirname, 'dist/client/static', 'builtin.js'),
|
||||
})
|
||||
|
||||
configs.push({
|
||||
entryPoints: ["./client/settings.ts"],
|
||||
bundle: true,
|
||||
minify: true,
|
||||
sourcemap,
|
||||
target: 'safari11',
|
||||
outfile: path.resolve(__dirname, 'dist/client/settings', 'settings.js'),
|
||||
})
|
||||
|
||||
const promises = configs.map(c => esbuild.build(c))
|
||||
|
||||
Promise.all(promises)
|
||||
.catch(() => process.exit(1))
|
Reference in New Issue
Block a user