user-event icon indicating copy to clipboard operation
user-event copied to clipboard

Package path ./dist/types/utility/type.js is not exported from package

Open mckinlde opened this issue 2 years ago • 2 comments

Reproduction example

NA - Doesn't Build

Prerequisites

npm run build

[email protected] build react-scripts build

Creating an optimized production build... Failed to compile.

Module not found: Error: Package path ./dist/types/utility/type.js is not exported from package /app/node_modules/@testing-library/user-event (see exports field in /app/node_modules/@testing-library/user-event/package.json)

Expected behavior

app/node_modules/@testing-library/user-event/package.json::

{ "name": "@testing-library/user-event", "version": "14.5.1", "description": "Fire events the same way the user does", "keywords": [ "react-testing-library", "dom-testing-library", "react", "testing" ], "author": "Giorgio Polvara [email protected]", "license": "MIT", "engines": { "node": ">=12", "npm": ">=6" }, "repository": { "type": "git", "url": "https://github.com/testing-library/user-event" }, "bugs": { "url": "https://github.com/testing-library/user-event/issues" }, "homepage": "https://github.com/testing-library/user-event#readme", "files": [ "dist" ], "scripts": { "build": "scripts ts-build2 --cjs --target es2019", "lint": "kcd-scripts lint", "setup": "npm install && npm run validate -s", "setup:env": "node --experimental-import-meta-resolve scripts/setup.js", "test": "kcd-scripts test", "test:jest": "kcd-scripts test", "test:toolbox": "NODE_OPTIONS='--experimental-vm-modules --experimental-modules --experimental-import-meta-resolve' node scripts/test.js", "test:debug": "kcd-scripts --inspect-brk test --runInBand", "test:update": "npm test -- --updateSnapshot --coverage", "validate": "kcd-scripts typecheck" }, "devDependencies": { "@ph.fritsche/scripts-config": "^2.4.0", "@ph.fritsche/toolbox": "^1.0.0-alpha.1", "@testing-library/dom": "^8.19.0", "@testing-library/jest-dom": "^5.16.3", "@testing-library/react": "^13.4.0", "@types/jest-in-case": "^1.0.3", "@types/react": "^18.0.25", "@types/sinonjs__fake-timers": "^8.1.2", "css.escape": "^1.5.1", "eslint-import-resolver-typescript": "^3.5.2", "eslint-plugin-local-rules": "^1.3.2", "expect": "^28.1.3", "is-ci": "^3.0.1", "istanbul-lib-coverage": "^3.2.0", "istanbul-lib-report": "^3.0.0", "istanbul-lib-source-maps": "^4.0.1", "istanbul-reports": "^3.1.5", "jest-in-case": "^1.0.2", "jest-mock": "^28.1.3", "jest-serializer-ansi": "^1.0.3", "jsdom": "^20.0.3", "kcd-scripts": "^12.1.0", "react": "^18.0.0", "react-dom": "^18.0.0", "shared-scripts": "^1.5.1", "ts-node": "^10.9.1", "typescript": "^4.9.3" }, "peerDependencies": { "@testing-library/dom": ">=7.21.4" }, "dependencies": {}, "main": "./dist/cjs/index.js", "module": "./dist/esm/index.js", "types": "./dist/types/index.d.ts", "exports": { ".": { "types": "./dist/types/index.d.ts", "require": "./dist/cjs/index.js", "default": "./dist/esm/index.js" }, "./dist/cjs/": "./dist/cjs/", "./dist/esm/": "./dist/esm/" }, "typesVersions": { "": { "dist/types/": [ "./dist/types/" ], "dist/cjs/.js": [ "./dist/types/.d.ts" ], "dist/esm/.js": [ "./dist/types/.d.ts" ], "": [ "./dist/types/*.d.ts" ] } } }

Actual behavior

nom build should succeed

User-event version

14.5.1

Environment

Testing Library framework:

"@testing-library/react": "^13.4.0",

JS framework:

npm --v react 9.6.7

Test environment:

DOM implementation:

Additional context

I just want to npm run build. I don't even use this library in my app.

mckinlde avatar Sep 21 '23 05:09 mckinlde

I solved this problem for myself by removing the library; it was a legacy inclusion from a template by Anton Kalik, specifically https://github.com/antonkalik/session-react-router

If some hapless Googler finds this the way I did, I recommend you follow up with Anton if this issue hasn't been resolved; it may still affect that repo

mckinlde avatar Sep 21 '23 05:09 mckinlde

When trying to lint with ESLint: 8.54.0 and @testing-library/user-event 14.4.3 or 14.5.1 I get a similar error:

Error [ERR_PACKAGE_PATH_NOT_EXPORTED]: Package subpath './dist/types/setup/directApi' is not defined by "exports" in ...node_modules/@testing-library/user-event/package.json

If I go to node_modules/@testing-library/user-event/package.json and remove the whole exports block:

"exports": {
    ".": {
      "types": "./dist/types/index.d.ts",
      "require": "./dist/cjs/index.js",
      "default": "./dist/esm/index.js"
    },
    "./dist/cjs/*": "./dist/cjs/*",
    "./dist/esm/*": "./dist/esm/*"
  },

ESlint works without issues... Please note that my project is using NPM Workspaces (if that matters).

update: it appears to be related with https://www.npmjs.com/package/eslint-import-resolver-typescript

antoniosZ avatar Nov 22 '23 23:11 antoniosZ