create-a-critique
Version:
Start a GoTHA app, it combines Go, Templ, HTMX and Alpine.js in the same bundle.
79 lines (75 loc) • 1.68 kB
text/typescript
import { defineConfig } from '@rspack/cli';
import { rspack } from '@rspack/core';
import path from 'node:path';
import { fileURLToPath } from 'node:url';
const __dirname = path.dirname(fileURLToPath(import.meta.url));
// Target browsers, see: https://github.com/browserslist/browserslist
const targets = ['chrome >= 87', 'edge >= 88', 'firefox >= 78', 'safari >= 14'];
export default defineConfig({
entry: {
main: './src/index.ts',
},
output: {
filename: "bundle.js",
path: path.resolve(__dirname, './public/bundles')
},
resolve: {
extensions: ['...', '.ts'],
},
module: {
rules: [
{
test: /\.svg$/,
type: 'asset',
},
{
test: /\.css$/,
use: ["postcss-loader"],
type: "css"
},
{
test: /\.js$/,
use: [
{
loader: 'builtin:swc-loader',
options: {
jsc: {
parser: {
syntax: 'ecmascript',
},
},
env: { targets },
},
},
],
},
{
test: /\.ts$/,
use: [
{
loader: 'builtin:swc-loader',
options: {
jsc: {
parser: {
syntax: 'typescript',
},
},
env: { targets },
},
},
],
},
],
},
optimization: {
minimizer: [
new rspack.SwcJsMinimizerRspackPlugin(),
new rspack.LightningCssMinimizerRspackPlugin({
minimizerOptions: { targets },
}),
],
},
experiments: {
css: true,
},
});