如何通过目录引用桶文件导入模块,无需指定文件名与扩展名?
解决方法
1. 编译后运行(纯Node.js ESM)
如果你的代码是编译为JavaScript后运行,Node.js的ES模块机制默认支持目录导入:当你导入../models时,Node会自动查找该目录下的index.js(即index.ts编译后的文件),不需要任何配置。只要确保编译后的文件结构和源文件一致,这种写法就能正常工作。
2. 直接运行TypeScript文件(无需JSON配置)
如果是直接运行TypeScript代码,推荐使用tsx工具——它默认支持目录导入自动识别index.ts,完全不需要配置文件。
- 先安装tsx:
npm install -D tsx
- 用tsx运行你的代码:
tsx src/your-entry-file.ts
此时你写import { ... } from '../models'就能正常导入目录下index.ts导出的内容。
注意事项
- 若坚持使用
ts-node,它默认需要配置tsconfig.json才能支持目录导入index.ts,不符合你“无JSON配置”的要求,因此更推荐用tsx替代。 - 不要在目标目录下创建额外的
package.json(比如设置main字段),避免违反“不使用任何JSON配置文件”的要求。
内容的提问来源于stack exchange,提问作者cacascacas
相关产品推荐
相关产品推荐

