首页 > 解决方案 > 是否可以让 TS Vite 使用 ESM 并让 TS Gulp 在同一个项目中使用 Common JS?

问题描述

这是我的具体情况:

  1. 我有一个使用 TypeScript的Vite项目
  2. 我正在添加Gulp来处理一些自动化任务
  3. 我希望 Gulp 文件用 TypeScript 编写,所以我按照以下步骤操作
  4. 我遇到了这个问题

Gulp 的创建者这样回应:

您正在使用 esm,所以这是 gulpjs/rechoir#43的副本...您可以切换回 CJS。

我想知道的是 TypeScript Gulp(所以一个gulpfile.ts文件)是否可以在 Common JS 上运行,而 Vite 仍然可以在 ESM 上运行并使用 TypeScript 文件。

标签: typescriptgulpcommonjsvitees6-modules

解决方案


这个问题可以通过其他答案来回答:

https://stackoverflow.com/a/49849088/1611058

(请注意,在发布此问题后,它已更新为我需要的答案)

将此应用于您的tsconfig.json文件:

{
    // these options are overrides used only by ts-node 
    "ts-node": {
        "compilerOptions": {
            "module": "commonjs" 
        }
    }
}

这将允许 ts-node 使用 CommonJS 编译你的 gulp 文件,并让 Vite 使用 ESM 编译你的其余代码。


推荐阅读