Skip to content

NodeJS imports breaking NextJS/Browser compat #1478

Description

@jasonkuhrt

@jasonkuhrt actually above pr seems to resolve the not found module for nodejs modules. Now some other compatibility issue of @wollybeard/kit breaks build with next.js 15.5.7

node:fs/promises
Module build failed: UnhandledSchemeError: Reading from "node:fs/promises" 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.
./node_modules/.pnpm/@wollybeard+kit@0.102.1_@effect+platform@0.93.6_effect@3.19.10__effect@3.19.10/node_modules/@wollybeard/kit/build/utils/dir/dir.js
./node_modules/.pnpm/@wollybeard+kit@0.102.1_@effect+platform@0.93.6_effect@3.19.10__effect@3.19.10/node_modules/@wollybeard/kit/build/utils/dir/__.js
./node_modules/.pnpm/@wollybeard+kit@0.102.1_@effect+platform@0.93.6_effect@3.19.10__effect@3.19.10/node_modules/@wollybeard/kit/build/utils/dir/_.js
./node_modules/.pnpm/@wollybeard+kit@0.102.1_@effect+platform@0.93.6_effect@3.19.10__effect@3.19.10/node_modules/@wollybeard/kit/build/exports/index.js
./node_modules/.pnpm/graffle@8.0.0-next.220_@effect+platform@0.93.6_effect@3.19.10__@opentelemetry+api@1.9.0_6f80d207cd73597135fbb64eee73d906/node_modules/graffle/build/client/client.js
./node_modules/.pnpm/graffle@8.0.0-next.220_@effect+platform@0.93.6_effect@3.19.10__@opentelemetry+api@1.9.0_6f80d207cd73597135fbb64eee73d906/node_modules/graffle/build/exports/index.js
./src/providers/graphqlClient.tsx

This error is repeated for node:fs, node:os and node:path.

Originally posted by @ogous in #1460

Activity

  1. P4sca1 commented on Dec 20, 2025

    @P4sca1

    The same issue applies to Nuxt.js (Vite) builds:

    ℹ vite v7.3.0 building client environment for production...                                                                         12:43:07 PM
    
    [12:43:21 PM]  WARN  [plugin vite:resolve] Module "node:os" has been externalized for browser compatibility, imported by "/Users/pascal/code/ips-hosting/frontend/node_modules/.pnpm/@wollybeard+kit@0.107.0_@effect+platform@0.93.8_effect@3.19.12__effect@3.19.12_zod@3.25.76/node_modules/@wollybeard/kit/build/log/output.js". See https://vite.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details.
    
    
    [12:43:21 PM]  WARN  [plugin vite:resolve] Module "node:os" has been externalized for browser compatibility, imported by "/Users/pascal/code/ips-hosting/frontend/node_modules/.pnpm/@wollybeard+kit@0.107.0_@effect+platform@0.93.8_effect@3.19.12__effect@3.19.12_zod@3.25.76/node_modules/@wollybeard/kit/build/log/renderer.js". See https://vite.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details.
    
    
    [12:43:21 PM]  WARN  [plugin vite:resolve] Module "node:os" has been externalized for browser compatibility, imported by "/Users/pascal/code/ips-hosting/frontend/node_modules/.pnpm/@wollybeard+kit@0.107.0_@effect+platform@0.93.8_effect@3.19.12__effect@3.19.12_zod@3.25.76/node_modules/@wollybeard/kit/build/log/logger.js". See https://vite.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details.
    
    
    [12:43:22 PM]  WARN  [plugin vite:resolve] Module "node:path" has been externalized for browser compatibility, imported by "/Users/pascal/code/ips-hosting/frontend/node_modules/.pnpm/@wollybeard+kit@0.107.0_@effect+platform@0.93.8_effect@3.19.12__effect@3.19.12_zod@3.25.76/node_modules/@wollybeard/kit/build/fs/builder/spec.js". See https://vite.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details.
    
    
    [12:43:22 PM]  WARN  [plugin vite:resolve] Module "node:os" has been externalized for browser compatibility, imported by "/Users/pascal/code/ips-hosting/frontend/node_modules/.pnpm/@wollybeard+kit@0.107.0_@effect+platform@0.93.8_effect@3.19.12__effect@3.19.12_zod@3.25.76/node_modules/@wollybeard/kit/build/fs/builder/builder.js". See https://vite.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details.
    
    
    [12:43:22 PM]  WARN  [plugin vite:resolve] Module "node:path" has been externalized for browser compatibility, imported by "/Users/pascal/code/ips-hosting/frontend/node_modules/.pnpm/@wollybeard+kit@0.107.0_@effect+platform@0.93.8_effect@3.19.12__effect@3.19.12_zod@3.25.76/node_modules/@wollybeard/kit/build/fs/builder/builder.js". See https://vite.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details.
    
    
    [12:43:22 PM]  WARN  [plugin vite:resolve] Module "node:fs" has been externalized for browser compatibility, imported by "/Users/pascal/code/ips-hosting/frontend/node_modules/.pnpm/@wollybeard+kit@0.107.0_@effect+platform@0.93.8_effect@3.19.12__effect@3.19.12_zod@3.25.76/node_modules/@wollybeard/kit/build/paka/adaptors/vitepress.js". See https://vite.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details.
    
    
    [12:43:22 PM]  WARN  [plugin vite:resolve] Module "node:path" has been externalized for browser compatibility, imported by "/Users/pascal/code/ips-hosting/frontend/node_modules/.pnpm/@wollybeard+kit@0.107.0_@effect+platform@0.93.8_effect@3.19.12__effect@3.19.12_zod@3.25.76/node_modules/@wollybeard/kit/build/paka/adaptors/vitepress.js". See https://vite.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details.
    
    
    [12:43:22 PM]  WARN  [plugin vite:resolve] Module "node:fs" has been externalized for browser compatibility, imported by "/Users/pascal/code/ips-hosting/frontend/node_modules/.pnpm/@wollybeard+kit@0.107.0_@effect+platform@0.93.8_effect@3.19.12__effect@3.19.12_zod@3.25.76/node_modules/@wollybeard/kit/build/paka/extractor/extract.js". See https://vite.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details.
    
    
    [12:43:22 PM]  WARN  [plugin vite:resolve] Module "node:path" has been externalized for browser compatibility, imported by "/Users/pascal/code/ips-hosting/frontend/node_modules/.pnpm/@wollybeard+kit@0.107.0_@effect+platform@0.93.8_effect@3.19.12__effect@3.19.12_zod@3.25.76/node_modules/@wollybeard/kit/build/paka/extractor/extract.js". See https://vite.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details.
    
    
    [12:43:22 PM]  WARN  [plugin vite:resolve] Module "node:fs" has been externalized for browser compatibility, imported by "/Users/pascal/code/ips-hosting/frontend/node_modules/.pnpm/@wollybeard+kit@0.107.0_@effect+platform@0.93.8_effect@3.19.12__effect@3.19.12_zod@3.25.76/node_modules/@wollybeard/kit/build/paka/extractor/nodes/module.js". See https://vite.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details.
    
    
    [12:43:22 PM]  WARN  [plugin vite:resolve] Module "node:path" has been externalized for browser compatibility, imported by "/Users/pascal/code/ips-hosting/frontend/node_modules/.pnpm/@wollybeard+kit@0.107.0_@effect+platform@0.93.8_effect@3.19.12__effect@3.19.12_zod@3.25.76/node_modules/@wollybeard/kit/build/paka/extractor/nodes/module.js". See https://vite.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details.
    
    
    [12:43:24 PM]  WARN  [plugin vite:resolve] Module "node:path" has been externalized for browser compatibility, imported by "/Users/pascal/code/ips-hosting/frontend/node_modules/.pnpm/@wollybeard+kit@0.107.0_@effect+platform@0.93.8_effect@3.19.12__effect@3.19.12_zod@3.25.76/node_modules/@wollybeard/kit/build/paka/extractor/path-utils.js". See https://vite.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details.
    
    
    [12:43:26 PM]  WARN  [plugin vite:resolve] Module "node:path" has been externalized for browser compatibility, imported by "/Users/pascal/code/ips-hosting/frontend/node_modules/.pnpm/@wollybeard+kit@0.107.0_@effect+platform@0.93.8_effect@3.19.12__effect@3.19.12_zod@3.25.76/node_modules/@wollybeard/kit/build/fs/path/operations/toRel.js". See https://vite.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details.
    
    
    [12:43:30 PM]  WARN  [plugin vite:resolve] Module "fs" has been externalized for browser compatibility, imported by "/Users/pascal/code/ips-hosting/frontend/node_modules/.pnpm/tinyglobby@0.2.15/node_modules/tinyglobby/dist/index.mjs". See https://vite.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details.
    
    
    [12:43:30 PM]  WARN  [plugin vite:resolve] Module "path" has been externalized for browser compatibility, imported by "/Users/pascal/code/ips-hosting/frontend/node_modules/.pnpm/tinyglobby@0.2.15/node_modules/tinyglobby/dist/index.mjs". See https://vite.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details.
    
    
    [12:43:30 PM]  WARN  [plugin vite:resolve] Module "url" has been externalized for browser compatibility, imported by "/Users/pascal/code/ips-hosting/frontend/node_modules/.pnpm/tinyglobby@0.2.15/node_modules/tinyglobby/dist/index.mjs". See https://vite.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details.
    
    
    [12:43:32 PM]  WARN  [plugin vite:resolve] Module "module" has been externalized for browser compatibility, imported by "/Users/pascal/code/ips-hosting/frontend/node_modules/.pnpm/fdir@6.5.0_picomatch@4.0.3/node_modules/fdir/dist/index.mjs". See https://vite.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details.
    
    
    [12:43:32 PM]  WARN  [plugin vite:resolve] Module "path" has been externalized for browser compatibility, imported by "/Users/pascal/code/ips-hosting/frontend/node_modules/.pnpm/fdir@6.5.0_picomatch@4.0.3/node_modules/fdir/dist/index.mjs". See https://vite.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details.
    
    
    [12:43:32 PM]  WARN  [plugin vite:resolve] Module "fs" has been externalized for browser compatibility, imported by "/Users/pascal/code/ips-hosting/frontend/node_modules/.pnpm/fdir@6.5.0_picomatch@4.0.3/node_modules/fdir/dist/index.mjs". See https://vite.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details.
    
    
    [12:43:32 PM]  WARN  [plugin vite:resolve] Module "node:readline/promises" has been externalized for browser compatibility, imported by "/Users/pascal/code/ips-hosting/frontend/node_modules/.pnpm/@wollybeard+kit@0.107.0_@effect+platform@0.93.8_effect@3.19.12__effect@3.19.12_zod@3.25.76/node_modules/@wollybeard/kit/build/oak/lib/Prompter/Constructors/Process.js". See https://vite.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details.
    
    
    [12:43:32 PM]  WARN  [plugin vite:resolve] Module "node:process" has been externalized for browser compatibility, imported by "/Users/pascal/code/ips-hosting/frontend/node_modules/.pnpm/@wollybeard+kit@0.107.0_@effect+platform@0.93.8_effect@3.19.12__effect@3.19.12_zod@3.25.76/node_modules/@wollybeard/kit/build/oak/lib/KeyPress/KeyPress.js". See https://vite.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details.
    
    
    [12:43:32 PM]  WARN  [plugin vite:resolve] Module "node:readline" has been externalized for browser compatibility, imported by "/Users/pascal/code/ips-hosting/frontend/node_modules/.pnpm/@wollybeard+kit@0.107.0_@effect+platform@0.93.8_effect@3.19.12__effect@3.19.12_zod@3.25.76/node_modules/@wollybeard/kit/build/oak/lib/KeyPress/KeyPress.js". See https://vite.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details.
    
    
    [12:43:39 PM]  WARN  [plugin vite:resolve] Module "perf_hooks" has been externalized for browser compatibility, imported by "/Users/pascal/code/ips-hosting/frontend/node_modules/.pnpm/@ts-morph+common@0.28.1/node_modules/@ts-morph/common/dist/typescript.js". See https://vite.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details.
    
    
    [12:43:44 PM]  WARN  node_modules/.pnpm/@wollybeard+kit@0.107.0_@effect+platform@0.93.8_effect@3.19.12__effect@3.19.12_zod@3.25.76/node_modules/@wollybeard/kit/build/fs/path/operations/toRel.js (29:34): "relative" is not exported by "__vite-browser-external", imported by "node_modules/.pnpm/@wollybeard+kit@0.107.0_@effect+platform@0.93.8_effect@3.19.12__effect@3.19.12_zod@3.25.76/node_modules/@wollybeard/kit/build/fs/path/operations/toRel.js".
    
    
    [12:43:44 PM]  WARN  node_modules/.pnpm/@wollybeard+kit@0.107.0_@effect+platform@0.93.8_effect@3.19.12__effect@3.19.12_zod@3.25.76/node_modules/@wollybeard/kit/build/fs/builder/builder.js (39:30): "join" is not exported by "__vite-browser-external", imported by "node_modules/.pnpm/@wollybeard+kit@0.107.0_@effect+platform@0.93.8_effect@3.19.12__effect@3.19.12_zod@3.25.76/node_modules/@wollybeard/kit/build/fs/builder/builder.js".
    
    
    [12:43:44 PM]  WARN  node_modules/.pnpm/@wollybeard+kit@0.107.0_@effect+platform@0.93.8_effect@3.19.12__effect@3.19.12_zod@3.25.76/node_modules/@wollybeard/kit/build/fs/builder/builder.js (39:42): "tmpdir" is not exported by "__vite-browser-external", imported by "node_modules/.pnpm/@wollybeard+kit@0.107.0_@effect+platform@0.93.8_effect@3.19.12__effect@3.19.12_zod@3.25.76/node_modules/@wollybeard/kit/build/fs/builder/builder.js".
    
    
    [12:43:44 PM]  WARN  node_modules/.pnpm/@wollybeard+kit@0.107.0_@effect+platform@0.93.8_effect@3.19.12__effect@3.19.12_zod@3.25.76/node_modules/@wollybeard/kit/build/fs/builder/builder.js (63:30): "join" is not exported by "__vite-browser-external", imported by "node_modules/.pnpm/@wollybeard+kit@0.107.0_@effect+platform@0.93.8_effect@3.19.12__effect@3.19.12_zod@3.25.76/node_modules/@wollybeard/kit/build/fs/builder/builder.js".
    
    
    [12:43:44 PM]  WARN  node_modules/.pnpm/@wollybeard+kit@0.107.0_@effect+platform@0.93.8_effect@3.19.12__effect@3.19.12_zod@3.25.76/node_modules/@wollybeard/kit/build/fs/builder/builder.js (63:42): "tmpdir" is not exported by "__vite-browser-external", imported by "node_modules/.pnpm/@wollybeard+kit@0.107.0_@effect+platform@0.93.8_effect@3.19.12__effect@3.19.12_zod@3.25.76/node_modules/@wollybeard/kit/build/fs/builder/builder.js".
    
    ℹ ✓ 5092 modules transformed.                                                                                                       12:43:44 PM
    
     ERROR  ✗ Build failed in 36.77s                                                                                                     12:43:44 PM
    
    │
    ■  Nuxt build error: RollupError: node_modules/.pnpm/@wollybeard+kit@0.107.0_@effect+platform@0.93.8_effect@3.19.12__effect@3.19.12_zod@3.25.76/node_modules/@wollybeard/kit/build/fs/builder/spec.js (2:9): "join" is not exported by "__vite-browser-external", imported by "node_modules/.pnpm/@wollybeard+kit@0.107.0_@effect+platform@0.93.8_effect@3.19.12__effect@3.19.12_zod@3.25.76/node_modules/@wollybeard/kit/build/fs/builder/spec.js".
    │  file: /Users/pascal/code/ips-hosting/frontend/node_modules/.pnpm/@wollybeard+kit@0.107.0_@effect+platform@0.93.8_effect@3.19.12__effect@3.19.12_zod@3.25.76/node_modules/@wollybeard/kit/build/fs/builder/spec.js:2:9
    │  
    │  1: import { Schema as S } from 'effect';
    │  2: import { join } from 'node:path';
    │              ^
    │  3: import { Path } from '../path/_.js';
    │  4: /**
    │  
     ELIFECYCLE  Command failed with exit code 1.
    

    Maybe the unjs ecosystem can be useful here: https://unjs.io/
    They maintain a drop-in replacement for the Node.js path library: https://github.com/unjs/pathe

  2. ogous commented on Jan 6, 2026

    @ogous

    @jasonkuhrt May I kindly ask if you have an estimate on whether this issue can be fixed?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions