Skip to content

Node browser field false not supported #66

@marvinhagemeister

Description

@marvinhagemeister

The object-inspect package has this browser field in their package.json.

{
 "browser": {
    "./util.inspect.js": false
  },
}

According to the spec any modules with the value false should be replaced with an empty object when being loaded. We seem to ignore that, even when setting platform: "browser".

Steps to reproduce

import {
  RequestedModuleType,
  ResolutionMode,
  Workspace,
} from "jsr:@deno/loader";

const loader = await new Workspace({ platform: "browser" }).createLoader();

const resolvedIndex = await loader.resolve(
  "npm:object-inspect",
  undefined,
  ResolutionMode.Import,
);

const resolved2 = await loader.resolve(
  resolvedIndex.replace("index.js", "util.inspect"),
  resolvedIndex,
  ResolutionMode.Require,
);

const loaded = await loader.load(resolved2, RequestedModuleType.Default);
if (loaded.kind === "external") throw new Error("FAIL");
console.log(
  `This should be an empty module:\n\n`,
  new TextDecoder().decode(loaded.code),
);

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions