跨平台覆盖委派给ts-node的gulp的TypeScript配置

l7wslrjt  于 2022-12-08  发布在  Gulp
关注(0)|答案(1)|浏览(180)

我知道ts-node不支持ECMAScript模块,但我需要它们,而不是CommonJS用于我的项目:

"compilerOptions": {
  "target": "ES2020",
  "module": "ESNext",
  // ...
}

如果运行gulp taskName,则错误

[11:27:19] Requiring external module ts-node/register
D:\IntelliJ IDEA\RequestedClientProjects\XXXXX\gulpfile.ts:1
import Gulp from "gulp";

我知道我需要做的就是在TypeScript配置中指定"target": "CommonJS",但是正如我上面所说的,ES2020主要是我的项目所需要的。如何仅仅为了gulp而覆盖TSConfig?
我试探着:

  • gulp taskName --compiler-options={"module":"commonJS"}-未更改任何内容
  • "TS_NODE_PROJECT='./tsconfig.cjs.json'; gulp taskName-在Windows上得到了TS_NODE_PROJECT not found
l0oc07j2

l0oc07j21#

如果您没有使用ts-node来运行您的应用程序(这很可能是您使用Gulp的情况),您可以在tsconfig.json中添加一个“ts-node”部分:

{
  "compilerOptions": {
    ...
    "module": "es2020",
    ...
  },
  "ts-node": {
    "compilerOptions": {
      "module": "commonjs"
    }
  }

相关问题