So I am building a web3 dApp and when I try building the project I get a node:url webpack error. Here is the error:
pulse-trade@0.1.0 build next build
▲ Next.js 15.0.1
- Environments: .env
Creating an optimized production build ... Failed to compile.
node:url
Module build failed: UnhandledSchemeError: Reading from "node:url" is not handled by plugins (Unhandled scheme).
Webpack supports "data:" and "file:" URIs by default.
You may need an additional plugin to handle "node:" URIs.
at C:\Users\patri\Desktop\HACKERTHON\ENCODE HACKATHON\fleek-nextjs-boilerplate
ode_modules
ext\dist\compiled\webpack\bundle5.js:28:401783
at Hook.eval [as callAsync] (eval at create (C:\Users\patri\Desktop\HACKERTHON\ENCODE HACKATHON\fleek-nextjs-boilerplate
ode_modules
ext\dist\compiled\webpack\bundle5.js:13:28858), :6:1)
at Hook.CALL_ASYNC_DELEGATE [as _callAsync] (C:\Users\patri\Desktop\HACKERTHON\ENCODE HACKATHON\fleek-nextjs-boilerplate
ode_modules
ext\dist\compiled\webpack\bundle5.js:13:26012)
at Object.processResource (C:\Users\patri\Desktop\HACKERTHON\ENCODE HACKATHON\fleek-nextjs-boilerplate
ode_modules
ext\dist\compiled\webpack\bundle5.js:28:401708)
at processResource (C:\Users\patri\Desktop\HACKERTHON\ENCODE HACKATHON\fleek-nextjs-boilerplate
ode_modules
ext\dist\compiled\loader-runner\LoaderRunner.js:1:5308)
at iteratePitchingLoaders (C:\Users\patri\Desktop\HACKERTHON\ENCODE HACKATHON\fleek-nextjs-boilerplate
ode_modules
ext\dist\compiled\loader-runner\LoaderRunner.js:1:4667)
at runLoaders (C:\Users\patri\Desktop\HACKERTHON\ENCODE HACKATHON\fleek-nextjs-boilerplate
ode_modules
ext\dist\compiled\loader-runner\LoaderRunner.js:1:8590)
at NormalModule._doBuild (C:\Users\patri\Desktop\HACKERTHON\ENCODE HACKATHON\fleek-nextjs-boilerplate
ode_modules
ext\dist\compiled\webpack\bundle5.js:28:401570)
at NormalModule.build (C:\Users\patri\Desktop\HACKERTHON\ENCODE HACKATHON\fleek-nextjs-boilerplate
ode_modules
ext\dist\compiled\webpack\bundle5.js:28:403598)
at C:\Users\patri\Desktop\HACKERTHON\ENCODE HACKATHON\fleek-nextjs-boilerplate
ode_modules
ext\dist\compiled\webpack\bundle5.js:28:82055
Import trace for requested module: node:url ./node_modules/tough-cookie/dist/cookie/canonicalDomain.js ./node_modules/tough-cookie/dist/cookie/index.js ./node_modules/fetch-cookie/esm/index.js ./node_modules/starknet/dist/index.mjs ./lib/services/starknet-trading.ts ./app/admin/page.tsx
Build failed because of webpack errors
I have updated my next.config.ts to this but still:
/** {import('next').NextConfig} / import type { NextConfig } from "next"; import webpack from 'webpack'; const nextConfig: NextConfig = { async headers() { return [ { source: '/:path', headers: [ { key: 'Cross-Origin-Opener-Policy', value: 'same-origin' } ] } ] }, webpack: (config, { isServer }) => { if (!isServer) { config.resolve.fallback = { ...config.resolve.fallback, url: false, fs: false, net: false, tls: false, crypto: require.resolve('crypto-browserify'), stream: require.resolve('stream-browserify'), buffer: require.resolve('buffer/'), util: require.resolve('util/'), assert: require.resolve('assert/'), }; config.plugins = [ ...config.plugins, // Add polyfills for node built-in modules new webpack.ProvidePlugin({ Buffer: ['buffer', 'Buffer'], process: 'process/browser', }), ]; // Handle node: protocol imports config.resolve.alias = { ...config.resolve.alias, 'node:url': require.resolve('url/'), 'node:buffer': require.resolve('buffer/'), 'node:util': require.resolve('util/'), 'node:stream': require.resolve('stream-browserify'), 'node:assert': require.resolve('assert/'), 'node:crypto': require.resolve('crypto-browserify'), }; config.resolve.fallback = { url: require.resolve("url"), fs: require.resolve("graceful-fs"), buffer: require.resolve("buffer"), stream: require.resolve("stream-browserify"), }; config.plugins.push( new webpack.ProvidePlugin({ process: "process/browser", Buffer: ["buffer", "Buffer"], }), new webpack.NormalModuleReplacementPlugin(/node:/, (resource) => { const mod = resource.request.replace(/^node:/, ""); switch (mod) { case "buffer": resource.request = "buffer"; break; case "url": resource.request = "url"; break; case "stream": resource.request = "readable-stream"; break; default: throw new Error(
Not found ${mod}); } }), ); config.ignoreWarnings = [/Failed to parse source map/]; } return config; }, }; module.exports = nextConfig export default nextConfig;
I don't know where the error is originating from so please I need some assistance.