gpt4 book ai didi

javascript - 使用加载器 ts-node/esm.js 运行 Node 需要导入具有 .js 扩展名

转载 作者:行者123 更新时间:2023-12-04 03:56:24 25 4
gpt4 key购买 nike

我正在尝试将我的 package.json 设置为模块运行 Node 14:

"type": "module",
如果我在 typescript 文件上运行此命令:
 node --loader ts-node/esm.mjs --experimental-top-level-await ./src/scripts/ts-build.ts --trace-warnings --experimental-json-modules
我在 typescript 文件中有这样的无扩展名导入
import { logger } from './logger';
我明白了

ERR_MODULE_NOT_FOUND


但是,如果我将其更改为
import { logger } from './logger.js';
有用。
为什么是这样?

最佳答案

我通过 Node v14.15.0 上的这些实验性功能解决了它.

node --loader ts-node/esm --experimental-specifier-resolution=node your/entry.ts
但如果你只想要命令 node , ts-nodewebpack serve要使用带有 import 语句的 typescript 条目文件(例如 server.ts 或 webpack.config.ts),您可以通过设置 compilerOptions 来解决此问题在 ts-node 下tsconfig.ts 中的选项。
{
"ts-node": {
"compilerOptions": {
"module": "CommonJS"
}
},
"compilerOptions": {
"target": "ES6",
"module": "ES6",
"moduleResolution": "Node",
"esModuleInterop": true
},
"include": [
// below entries are just examples
"src/**/*",
"server.ts"
"webpack.config.ts"
]
}

关于javascript - 使用加载器 ts-node/esm.js 运行 Node 需要导入具有 .js 扩展名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63807613/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com