tsconfig.json从mocha调用时,是否可以覆盖使用哪个ts节点?
tsconfig.json
我的主要tsconfig.json包含"module": "es2015",但我只想"module": "commonjs"用于ts-node。
"module": "es2015"
"module": "commonjs"
我试过了
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
您需要通过TS_NODE_COMPILER_OPTIONS环境变量设置配置
TS_NODE_COMPILER_OPTIONS
UNIX计算机上的示例代码:
TS_NODE_COMPILER_OPTIONS='{"module":"commonjs"}' \ mocha --require ts-node/register 'test/**/*.spec.{ts,tsx}'
从 存储库文档中提取的说明
CLI和程序选项
用括号表示的环境变量。
-T, --transpile-only
TS_NODE_TRANSPILE_ONLY
-I, --ignore [pattern]
TS_NODE_IGNORE
-P, --project [path]
TS_NODE_PROJECT
-C, --compiler [name]
TS_NODE_COMPILER
-D, --ignore-diagnostics [code]
TS_NODE_IGNORE_DIAGNOSTICS
-O, --compiler-options [opts]
--files
TS_NODE_FILES
--pretty
TS_NODE_PRETTY
--skip-project
TS_NODE_SKIP_PROJECT
--skip-ignore
TS_NODE_SKIP_IGNORE
--log-error
TS_NODE_LOG_ERROR
--prefer-ts-exts
TS_NODE_PREFER_TS_EXTS