MeshiTrack/packages/web/next.config.ts

28 lines
905 B
TypeScript

import type { NextConfig } from 'next';
import path from 'path';
const sharedSrc = path.resolve(import.meta.dirname, '../shared/src');
const nextConfig: NextConfig = {
turbopack: {},
webpack: (config) => {
// The shared package source uses ESM `.js` extensions on imports (e.g. `./enums/index.js`).
// When Next.js resolves via tsconfig paths to the raw `.ts` source, webpack needs to
// know that `.js` imports inside that directory should resolve to `.ts`/`.tsx` files.
config.resolve = config.resolve ?? {};
config.resolve.extensionAlias = {
...config.resolve.extensionAlias,
'.js': ['.tsx', '.ts', '.jsx', '.js'],
};
// Ensure the shared source directory is included in the module resolution
config.resolve.alias = {
...config.resolve.alias,
'@meshitrack/shared': sharedSrc,
};
return config;
},
};
export default nextConfig;