1

I'm running a nodejs project with jasmine and jasmine-ts

i get these errors when i try to run my tests

Error: Package subpath './lib/command' is not defined by "exports" in D:\Projects - Abzo\Project 2\node_modules\jasmine\package.json at new NodeError (node:internal/errors:372:5) at throwExportsNotFound (node:internal/modules/esm/resolve:472:9) at packageExportsResolve (node:internal/modules/esm/resolve:753:3) at resolveExports (node:internal/modules/cjs/loader:482:36) at Function.Module._findPath (node:internal/modules/cjs/loader:522:31) at Function.Module._resolveFilename (node:internal/modules/cjs/loader:919:27) at Function.Module._load (node:internal/modules/cjs/loader:778:27) at Module.require (node:internal/modules/cjs/loader:1005:19) at require (node:internal/modules/cjs/helpers:102:18) at Object. (D:\Projects - Abzo\Project 2\node_modules\jasmine-ts\src\index.ts:143:17)

I tried to downgrade my ts-node version to 8.10.2 like in this stackoverflow question Jasmine-ts throwing an error about package subpath but still unsolved.

My script in package.json is "test":"jasmine-ts"

Abdel-Rahman
  • 539
  • 5
  • 19

1 Answers1

3

The problem is in the in the exports property of jasmine package.json:

Jasmine exports only the jasmine.js file

"exports": "./lib/jasmine.js"

But in the jasmine-ts code there is a require to command file (around row 164)

const Command = require("jasmine/lib/command");

Now this file is not part of the exports so it throws the error:

Error: Package subpath './lib/command' is not defined by "exports"

To fix this jasmine need to export also the command file used by jasmine-ts. I tested with the following changes in jasmine package.json and solve the problem:

"exports": {
  ".": "./lib/jasmine.js",
  "./lib/command": "./lib/command.js"
}

Changing the jasmine package.json is not a great solution but for now this is the only solution on top of my mind.
I'll try open an issue to jasmine github repository.

Tyler2P
  • 2,324
  • 26
  • 22
  • 31
Tony
  • 46
  • 2