Skip to content

fs.statSync gives different error in Deno vs Node for bad file path on Windows #23635

@dsherret

Description

@dsherret
import fs from "node:fs";

fs.statSync("V:\\deno-docs\\src\\pages\\**\\*.{js,jsx,ts,tsx,md,mdx}");
> deno run -A asdf.mjs
error: Uncaught (in promise) Error: EINVAL: invalid argument, stat
fs.statSync("V:\\deno-docs\\src\\pages\\**\\*.{js,jsx,ts,tsx,md,mdx}");
   ^
    at __node_internal_captureLargerStackTrace (ext:deno_node/internal/errors.ts:62:9)
    at __node_internal_uvException (ext:deno_node/internal/errors.ts:127:10)
    at denoErrorToNodeError (ext:deno_node/internal/errors.ts:1770:14)
    at Object.statSync (ext:deno_node/_fs/_fs_stat.ts:155:13)
    at file:///V:/deno-docs/asdf.js:3:4
> node asdf.mjs
node:fs:1660
  const stats = binding.stat(
                        ^

Error: ENOENT: no such file or directory, stat 'V:\deno-docs\src\pages\**\*.{js,jsx,ts,tsx,md,mdx}'
    at Object.statSync (node:fs:1660:25)
    at file:///V:/deno-docs/asdf.mjs:3:4
    at ModuleJob.run (node:internal/modules/esm/module_job:218:25)
    at async ModuleLoader.import (node:internal/modules/esm/loader:323:24)
    at async loadESM (node:internal/process/esm_loader:28:7)
    at async handleMainPromise (node:internal/modules/run_main:120:12) {
  errno: -4058,
  code: 'ENOENT',
  syscall: 'stat',
  path: 'V:\\deno-docs\\src\\pages\\**\\*.{js,jsx,ts,tsx,md,mdx}'
}

Node.js v21.6.1

Causes the deno-docs repo to not build on Windows: denoland/docs#452

Version: Deno 1.43.1

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working correctlynode compat

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions