28 lines
882 B
TypeScript
28 lines
882 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` files.
|
|
config.resolve = config.resolve ?? {};
|
|
config.resolve.extensionAlias = {
|
|
...config.resolve.extensionAlias,
|
|
'.js': ['.ts', '.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;
|