1
Fork 0
photoview/ui/build.js

48 lines
1.0 KiB
JavaScript

const fs = require('fs')
const bs = require('browser-sync').create()
const historyApiFallback = require('connect-history-api-fallback')
const production = process.env.NODE_ENV == 'production'
let builderPromise = require('esbuild').build({
entryPoints: ['src/index.js'],
outdir: 'dist',
// format: 'esm',
bundle: true,
platform: 'browser',
target: ['chrome58', 'firefox57', 'safari11', 'edge16'],
// splitting: true,
minify: production,
sourcemap: !production,
loader: {
'.js': 'jsx',
'.svg': 'text',
'.woff': 'file',
'.woff2': 'file',
'.ttf': 'file',
'.eot': 'file',
'.png': 'file',
},
define: {
'process.env.NODE_ENV': '"development"',
},
incremental: true,
})
fs.copyFileSync('src/index.html', 'dist/index.html')
bs.init({
server: {
baseDir: './dist',
middleware: [historyApiFallback()],
},
port: 1234,
open: false,
})
bs.watch('src/**/*.js').on('change', async args => {
console.log('reloading', args)
builderPromise = (await builderPromise).rebuild()
bs.reload(args)
})