从 mocha 调用时是否可以覆盖 tsconfig.json
ts-node 使用的?
我的主要 tsconfig.json
包含 "module": "es2015"
,但我想使用 "module": "commonjs"
仅用于 ts-node。
我试过这个
mocha --compilers ts:ts-node/register,tsx:ts-node/register \
--compilerOptions '{"module":"commonjs"}' \
--require ts-node/register test/**/*.spec.ts*
但它没有用:
SyntaxError: Unexpected token import
at exports.runInThisContext (vm.js:53:16)
at Module._compile (module.js:387:25)
at Module.m._compile (/usr/lib/node_modules/ts-node/src/index.ts:406:23)
at Module._extensions..js (module.js:422:10)
at Object.require.extensions.(anonymous function) [as .tsx] (/usr/lib/node_modules/ts-node/src/index.ts:409:12)
at Module.load (module.js:357:32)
at Function.Module._load (module.js:314:12)
at Module.require (module.js:367:17)
at require (internal/module.js:16:19)
at /usr/lib/node_modules/mocha/lib/mocha.js:222:27
at Array.forEach (native)
at Mocha.loadFiles (/usr/lib/node_modules/mocha/lib/mocha.js:219:14)
at Mocha.run (/usr/lib/node_modules/mocha/lib/mocha.js:487:10)
at Object.<anonymous> (/usr/lib/node_modules/mocha/bin/_mocha:458:18)
at Module._compile (module.js:413:34)
at Object.Module._extensions..js (module.js:422:10)
at Module.load (module.js:357:32)
at Function.Module._load (module.js:314:12)
at Function.Module.runMain (module.js:447:10)
at startup (node.js:146:18)
at node.js:404:3
原文由 Ralph 发布,翻译遵循 CC BY-SA 4.0 许可协议
需要通过
TS_NODE_COMPILER_OPTIONS
环境变量来设置配置Unix机器上的示例代码:
从 存储库文档 中提取的说明
CLI 和编程选项
括号中表示的环境变量。
-T, --transpile-only
使用 TypeScript 更快的 transpileModule (TS_NODE_TRANSPILE_ONLY
, 默认值: false)-I, --ignore [pattern]
覆盖路径模式以跳过编译(TS_NODE_IGNORE
,默认值:/node_modules/)-P, --project [path]
TypeScript JSON 项目文件的路径(TS_NODE_PROJECT
)-C, --compiler [name]
指定自定义 TypeScript 编译器(TS_NODE_COMPILER
,默认值:typescript)-D, --ignore-diagnostics [code]
通过诊断代码忽略TypeScript警告(TS_NODE_IGNORE_DIAGNOSTICS
)-O, --compiler-options [opts]
JSON 对象与编译器选项合并(TS_NODE_COMPILER_OPTIONS
)--files
启动时从 tsconfig.json 加载文件(TS_NODE_FILES
,默认值:false)--pretty
使用漂亮的诊断格式化程序(TS_NODE_PRETTY
,默认值:false)--skip-project
跳过项目配置解析和加载(TS_NODE_SKIP_PROJECT
,默认值:false)--skip-ignore
跳过忽略检查(TS_NODE_SKIP_IGNORE
,默认值:false)--log-error
记录类型错误而不是退出进程(TS_NODE_LOG_ERROR
,默认值:false)--prefer-ts-exts
重新排序文件扩展名,以便首选 TypeScript 导入(TS_NODE_PREFER_TS_EXTS
,默认值:false)