I have a project like this where I import a lib from another dir outside of the current one
.
|
- systems_programming_lib
- tsconfig.json
- package.json
- src
- bin
|
|
- data_storage
- tsconfig.json
- package.json
- src
- bin
Where data storage refrences code from the systems_programming_lib
data_storage/tsconfig.json:
{
"compilerOptions": {
"target": "ESNext",
"module": "ESNext",
"baseUrl": ".",
"rootDir": "src",
"outDir": "bin",
"lib": [
"ESNext",
"DOM"
],
"esModuleInterop": true,
"skipLibCheck": true,
"resolveJsonModule": true,
"moduleDetection": "force",
"strict": true,
"noUncheckedIndexedAccess": true,
"forceConsistentCasingInFileNames": true,
"noImplicitReturns": true,
"noImplicitThis": true,
"noImplicitAny": true,
"noPropertyAccessFromIndexSignature": true,
"disableSizeLimit": true,
"exactOptionalPropertyTypes": true,
"noEmitOnError": true,
"moduleResolution": "Bundler",
"sourceMap": true,
"paths": {
"@sys_lib/*": [
"../systems_programming_lib/bin/*"
]
}
},
"include": [
"src/**/*.ts"
],
"references": [
{
"path": "../systems_programming_lib"
}
]
}
and for vscode and typescript it works fine
and compiling works fine
but when running with node I get the following error
node -r tsconfig-paths/register bin/index.js
:
node:internal/process/esm_loader:34
internalBinding('errors').triggerUncaughtException(
^
Error [ERR_MODULE_NOT_FOUND]: Cannot find package '@sys_lib/models' imported from /home/ledrake/files/systems_programming/data_storage/bin/messaging/Consumer.js
Did you mean to import /home/ledrake/files/systems_programming/systems_programming_lib/bin/models/event.js?
at packageResolve (node:internal/modules/esm/resolve:853:9)
at moduleResolve (node:internal/modules/esm/resolve:910:20)
at defaultResolve (node:internal/modules/esm/resolve:1130:11)
at ModuleLoader.defaultResolve (node:internal/modules/esm/loader:396:12)
at ModuleLoader.resolve (node:internal/modules/esm/loader:365:25)
at ModuleLoader.getModuleJob (node:internal/modules/esm/loader:240:38)
at ModuleWrap.<anonymous> (node:internal/modules/esm/module_job:85:39)
at link (node:internal/modules/esm/module_job:84:36) {
code: 'ERR_MODULE_NOT_FOUND'
}
Node.js v20.11.1