Skip to content

package self-reference works without a flag in node v12.16 #31754

Description

@ljharb

Repro: clone https://github.com/ljharb/has-package-exports

It has a dev dep of "has-package-exports": "file:.", so that in every node version, i can require('has-package-exports') from within the package, and it works.

In node v13.6 and v12.15, node test passes without issuing (node:96292) ExperimentalWarning: Package name self resolution is an experimental feature. This feature could change at any time as a warning.

In node v13.7, the warning is correctly issued, and the local dev dep is byassed.

However, in node v12.16, without passing any flags, the warning is issued and the local dev dep is bypassed. v12.16 and v12.15 should behave identically with respect to this feature, regardless of the presence of "exports" in package.json.

cc @nodejs/modules-active-members

Activity

  1. added
    moduleIssues and PRs related to the module subsystem.
    esmIssues and PRs related to the ECMAScript Modules implementation.
    on Feb 12, 2020
  2. guybedford commented on Feb 12, 2020

    @guybedford
    Contributor

    This is definitely a bug, unfortunately due to the nature of the backporting process between the flagged and unflagged implementations. The fix would be to include an explicit if (!experimentalModules) return in the first line of the trySelf function in lib/internal/modules/cjs/loader.js for the 12.x branch.

  3. MylesBorins commented on Feb 12, 2020

    @MylesBorins
    Contributor

    we can get out an emergency release to fix this

  4. ljharb commented on Feb 14, 2020

    @ljharb
    SponsorMemberAuthor

    Looks like this was resolved in f0b2d87, and may be released in #31781

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

    confirmed-bugIssues and PRs for confirmed bugs.esmIssues and PRs related to the ECMAScript Modules implementation.moduleIssues and PRs related to the module subsystem.

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions