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\node_modules\next\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\node_modules\next\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\node_modules\next\dist\compiled\webpack\bundle5.js:13:26012)
at Object.processResource (C:\Users\patri\Desktop\HACKERTHON\ENCODE HACKATHON\fleek-nextjs-boilerplate\node_modules\next\dist\compiled\webpack\bundle5.js:28:401708)
at processResource (C:\Users\patri\Desktop\HACKERTHON\ENCODE HACKATHON\fleek-nextjs-boilerplate\node_modules\next\dist\compiled\loader-runner\LoaderRunner.js:1:5308)
at iteratePitchingLoaders (C:\Users\patri\Desktop\HACKERTHON\ENCODE HACKATHON\fleek-nextjs-boilerplate\node_modules\next\dist\compiled\loader-runner\LoaderRunner.js:1:4667)
at runLoaders (C:\Users\patri\Desktop\HACKERTHON\ENCODE HACKATHON\fleek-nextjs-boilerplate\node_modules\next\dist\compiled\loader-runner\LoaderRunner.js:1:8590)
at NormalModule._doBuild (C:\Users\patri\Desktop\HACKERTHON\ENCODE HACKATHON\fleek-nextjs-boilerplate\node_modules\next\dist\compiled\webpack\bundle5.js:28:401570)
at NormalModule.build (C:\Users\patri\Desktop\HACKERTHON\ENCODE HACKATHON\fleek-nextjs-boilerplate\node_modules\next\dist\compiled\webpack\bundle5.js:28:403598)
at C:\Users\patri\Desktop\HACKERTHON\ENCODE HACKATHON\fleek-nextjs-boilerplate\node_modules\next\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:
/** @type {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.