Skip to content

Export the legacy ESM build as a package subpath #29

@gilpanal

Description

@gilpanal

Problem

The npm package includes a legacy ESM build:

dist/latency-test.legacy.esm.js

However, it cannot be imported through a package subpath because package.json only exports ".".

For example:

import "@adasp/latency-test/legacy"

currently fails because ./legacy is not defined in exports.

Importing directly from node_modules is possible, but fragile:

import "../../../../node_modules/@adasp/latency-test/dist/latency-test.legacy.esm.js"

Proposed change

Add a legacy subpath to package.json:

{
  "exports": {
    ".": {
      "types": "./dist/index.d.ts",
      "import": "./dist/latency-test.esm.js",
      "default": "./dist/latency-test.esm.js"
    },
    "./legacy": {
      "types": "./dist/index.d.ts",
      "import": "./dist/latency-test.legacy.esm.js",
      "default": "./dist/latency-test.legacy.esm.js"
    }
  }
}

This would allow consumers to use:

import "@adasp/latency-test/legacy"

Environment

  • @adasp/latency-test: 1.2.0
  • Bundler: Parcel 2

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions