I am using ts-node
but it is giving me this error:
$ ts-node index.ts
TypeError [ERR_UNKNOWN_FILE_EXTENSION]: Unknown file extension ".ts" for /home/projects/node-hddds8/index.ts
I tried to remove "type": "module"
from my package.json
but in that case I get a different error:
$ ts-node index.ts
(node:45) Warning: To load an ES module, set "type": "module" in the package.json or use the .mjs extension.
(Use `node --trace-warnings ...` to show where the warning was created)
/home/projects/node-hddds8/index.ts:1
import chalk from 'chalk';
^^^^^^
SyntaxError: Cannot use import statement outside a module
Here is a reproduction link on StackBlitz: https://stackblitz.com/edit/node-hddds8?file=index.ts
My package.json looks like this:
{
"name": "node-starter",
"version": "0.0.0",
"type": "module",
"dependencies": {
"chalk": "^5.0.1",
"ts-node": "^10.8.1",
"typescript": "^4.7.4"
}
}
And my tsconfig.json looks like this:
{
"compilerOptions": {
"target": "esnext",
"module": "esnext",
"moduleResolution": "Node",
}
}
And my index.ts looks like this:
import chalk from 'chalk';
console.log(chalk.blue('Hello world!'));
I had the same issue. Downgrading to v4.1.2 fixed it for me.
Might be because your compilerOptions in typescript is set to {“module”: “esnext”}
, so its getting interpreted as a module by ts-node. Try changing it to {“module”: “CommonJS”}
Try to start your project with ts-node-esm index.ts
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.