I use Node.JS workspace with the following structure:
root/
|- build/
|- ModuleA/
|- build/
|- ModuleB/
|- build/
|- WebAPI/
|- build/
|- server.ts
build
folder contains all the rollup
output.
root package.json
has "type": "module",
which I don't want to remove because I want to use import
tsconfig.json
has:
"moduleResolution": "node"
"esModuleInterop": true
.
"module": "ES2022"
When trying to run the web application npx ts-node ./WebAPI/server.ts
, I bump into the error:
TypeError [ERR_UNKNOWN_FILE_EXTENSION]: Unknown file extension ".ts"
Running the app with ts-node-esm src/webapi/server.ts
bumps into the following error:
CustomError: Cannot find module '/root/webapi/Presenters/RegisterUserPresenter'
on the line of import
:
import { RegisterUserPresenter } from "../Presenters/RegisterUserPresenter"
What should I do?
CodePudding user response:
node --experimental-specifier-resolution=node build/src/webapi/server.js
does the job!
CodePudding user response:
To solve the error, make sure to install the module and try setting moduleResolution to node in your tsconfig.json file
npm install module-name
npm install --save-dev @types/module-name
Make sure to replace module-name with the name of the module in your error message.
tsconfig.json
{
"compilerOptions": {
"moduleResolution": "node",
//.......
}
}