在代码中有部分是加载 TypeScript 类型的配置文件的代码,大概如下
export function loadTypeScriptConfig(configPath: string) {
// noinspection TypeScriptValidateJSTypes
require('ts-node').register()
return require(configPath)
}
但如果使用 ts-node 运行这段代码,则会发生错误,看了一下 ts-node issue 里说加载了两次。那么,是否有判断是否使用 ts-node 运行的方法,以此避免这个问题?
ts-node 相关 issue:https://github.com/TypeStrong...
使用 ts-node 加载 TypeScript 配置文件
单元测试
问题
在使用 ts-node 加载的配置文件中包含第三方依赖时,会出现以下错误
解决方案
在代码中如何判断使用 ts-node 运行的话就不调用
register()
?使用
require.extensions
判断是否包含 ts 加载器,不包含再注册ts-node
使用
"importHelpers": true
选项tslib
process.argv[0].includes('ts-node')
require.extensions
importHelpers
process.argv
ts-node