11// NOTE: related to src/configs/rewrites.ts
2+ import path from 'node:path'
3+
24export const DOCUMENTATION_DOMAIN = 'e2b.mintlify.app'
35
6+ const browserStub = ( file ) => path . resolve ( process . cwd ( ) , 'stubs' , file )
7+
8+ const browserNodeModuleStubs = {
9+ crypto : browserStub ( 'crypto.ts' ) ,
10+ fs : browserStub ( 'fs.ts' ) ,
11+ 'fs/promises' : browserStub ( 'fs-promises.ts' ) ,
12+ path : browserStub ( 'path.ts' ) ,
13+ 'node:crypto' : browserStub ( 'crypto.ts' ) ,
14+ 'node:fs' : browserStub ( 'fs.ts' ) ,
15+ 'node:fs/promises' : browserStub ( 'fs-promises.ts' ) ,
16+ 'node:path' : browserStub ( 'path.ts' ) ,
17+ }
18+
419/** @type {import('next').NextConfig } */
520const config = {
621 reactStrictMode : true ,
@@ -15,14 +30,32 @@ const config = {
1530 } ,
1631 turbopack : {
1732 resolveAlias : {
18- // Stub Node.js modules for browser builds
19- // e2b package bundles these packages. when dealing with browser chunks,
20- // we need to stub these packages for builds.
33+ crypto : { browser : './stubs/crypto.ts' } ,
2134 fs : { browser : './stubs/fs.ts' } ,
35+ 'fs/promises' : { browser : './stubs/fs-promises.ts' } ,
36+ path : { browser : './stubs/path.ts' } ,
37+ 'node:crypto' : { browser : './stubs/crypto.ts' } ,
2238 'node:fs' : { browser : './stubs/fs.ts' } ,
2339 'node:fs/promises' : { browser : './stubs/fs-promises.ts' } ,
40+ 'node:path' : { browser : './stubs/path.ts' } ,
2441 } ,
2542 } ,
43+ webpack : ( webpackConfig , { isServer, webpack } ) => {
44+ if ( ! isServer ) {
45+ webpackConfig . resolve . alias = {
46+ ...webpackConfig . resolve . alias ,
47+ ...browserNodeModuleStubs ,
48+ }
49+
50+ webpackConfig . plugins . push (
51+ new webpack . NormalModuleReplacementPlugin ( / ^ n o d e : / , ( resource ) => {
52+ resource . request = resource . request . replace ( / ^ n o d e : / , '' )
53+ } )
54+ )
55+ }
56+
57+ return webpackConfig
58+ } ,
2659 logging : {
2760 fetches : {
2861 fullUrl : true ,
0 commit comments