* Migrate to esbuild WIP * Add exclude * Remove redundant file * Move file * Move to javascript_include_tag * Lint fix * WIP * WIP * Add watch mode to esbuild WIP * Get jest working * Remove babel * Revert "Remove babel" This reverts commit 6da35260aa19d6f97f586deb66c0ecaf48433b73. * More WIP * Got image to load * WIP * Resolve audit * Lint fix * WIP * Fix jest spec * [CI] Remove asset-restore for test build stage * Production compliant * Temp disable sourcemap * Update glob * Add esbuild helper to stimulus * Import fragment * Temp disable coverage to see failing tests * Fix broken spec * Address lint * Set proper es6 target * Use esbuild for everything * wait what * Revert "Set proper es6 target" This reverts commit 98f5278093421baa8ffe2ca580845b01c1a1eadf. * Revert "Use esbuild for everything" This reverts commit 0ac46738f07ffcb6af095ccb1ffa5e439b7fefa3. * Replace uglifier with terser * New compiled assets version * Remvoe honeybadger-io/webpack * Remove cypress coverage checks for now * Update jsconfig.json * Update docker-compose * Remove public/packs-test from ci cache
39 lines
810 B
JavaScript
39 lines
810 B
JavaScript
import * as esbuild from 'esbuild'
|
|
import glob from 'glob'
|
|
import svgr from 'esbuild-plugin-svgr'
|
|
import { stimulusPlugin } from 'esbuild-plugin-stimulus'
|
|
|
|
let ctx = {
|
|
loader: {
|
|
'.js': 'jsx',
|
|
'.jsx': 'jsx',
|
|
'.png': 'file',
|
|
},
|
|
target: ['es2019'],
|
|
entryPoints: glob.sync("app/javascript/packs/**/*.*"),
|
|
jsxFactory: 'h',
|
|
jsxFragment: 'Fragment',
|
|
bundle: true,
|
|
minify: true,
|
|
sourcemap: false,
|
|
outdir: 'app/assets/builds',
|
|
logLevel: 'info',
|
|
define: {
|
|
'global': 'window',
|
|
},
|
|
alias: {
|
|
'react': 'preact/compat',
|
|
'react-dom': 'preact/compat',
|
|
},
|
|
plugins: [
|
|
svgr({jsxRuntime: 'classic-preact' }),
|
|
stimulusPlugin(),
|
|
],
|
|
}
|
|
|
|
if (process.argv.includes('--watch')) {
|
|
ctx = await esbuild.context(ctx)
|
|
await ctx.watch()
|
|
} else {
|
|
await esbuild.build(ctx)
|
|
}
|