Files
soroban-abacus-flashcards/apps/web/next.config.js
Thomas Hallock d992e98d77 feat: enable production source maps for easier debugging
Added productionBrowserSourceMaps: true to Next.js config to enable
source maps in production builds. This will make client-side errors
much easier to debug by showing the original TypeScript source files
and line numbers instead of minified JavaScript.

Trade-off: Slightly larger build artifacts, but worth it for the
improved debugging experience. Source maps are downloaded on-demand
only when DevTools are open.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-08 20:32:06 -06:00

74 lines
1.9 KiB
JavaScript

const createNextIntlPlugin = require('next-intl/plugin')
const withNextIntl = createNextIntlPlugin('./src/i18n/request.ts')
/** @type {import('next').NextConfig} */
const nextConfig = {
// Enable source maps in production for easier debugging
productionBrowserSourceMaps: true,
eslint: {
ignoreDuringBuilds: true,
},
typescript: {
ignoreBuildErrors: true,
},
experimental: {
optimizePackageImports: ['@soroban/core', '@soroban/client'],
serverComponentsExternalPackages: ['@myriaddreamin/typst.ts'],
},
transpilePackages: ['@soroban/core', '@soroban/client'],
webpack: (config, { isServer }) => {
config.experiments = {
...config.experiments,
asyncWebAssembly: true,
layers: true,
}
// Optimize WASM loading
if (!isServer) {
// Enable dynamic imports for better code splitting
config.optimization = {
...config.optimization,
splitChunks: {
...config.optimization.splitChunks,
cacheGroups: {
...config.optimization.splitChunks?.cacheGroups,
// Create separate chunk for WASM modules
wasm: {
test: /\.wasm$/,
name: 'wasm',
chunks: 'async',
enforce: true,
},
// Separate typst.ts into its own chunk
typst: {
test: /[\\/]node_modules[\\/]@myriaddreamin[\\/]typst.*[\\/]/,
name: 'typst',
chunks: 'async',
enforce: true,
},
},
},
}
// Add preload hints for critical WASM files
config.resolve.fallback = {
...config.resolve.fallback,
fs: false,
path: false,
}
}
// Fix for WASM modules
config.module.rules.push({
test: /\.wasm$/,
type: 'asset/resource',
})
return config
},
}
module.exports = withNextIntl(nextConfig)