Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to solve "Error: package subpath.." while using jasmine-ts?

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"

like image 639
Abdel-Rahman Avatar asked Aug 04 '26 11:08

Abdel-Rahman


1 Answers

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.

like image 70
Tony Avatar answered Aug 06 '26 03:08

Tony