如何在JavaScript文件中导入TypeScript文件?解决模块找不到错误
解决JavaScript文件导入TypeScript模块的找不到模块问题
Node.js默认不会解析.ts后缀的文件,所以你用require("../../src/index")时,它只会查找同名的.js/.json等Node.js默认识别的文件,哪怕.ts文件存在也会报错。以下是几种可行的解决方式:
先编译TypeScript文件再导入
- 确保
tsconfig.json中配置了outDir(比如"outDir": "./dist"),指定TS编译后的JS文件输出目录 - 运行
tsc命令编译所有TS文件到指定目录 - 在你的JS文件中导入编译后的JS文件:
const index_1 = require("../../dist/index");
- 确保
用ts-node/tsx直接运行文件,让Node支持TS解析
- 安装依赖:
npm install -D ts-node tsx typescript - 使用tsx运行你的JS测试文件:
npx tsx tests/steps/utils.js - 此时可以直接使用原有的
require语句,或者改用ES模块的import语法(需对应项目模块配置)
- 安装依赖:
改用ES模块导入语法(需配置项目支持)
如果你的package.json中设置了"type": "module",可以直接用ES模块语法导入TS文件:import * as index_1 from '../../src/index.ts';同样需要用tsx或编译后运行,Node.js本身还是不支持直接解析TS的ES模块。
内容的提问来源于stack exchange,提问作者Salman Arefin
相关产品推荐
相关产品推荐

