You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Gulp构建TypeScript项目时如何正确启用ts-node ESM?

解决Gulp构建时启用ts-node ESM的问题

以下是可行的解决步骤:

  • 修改package.json,声明ESM模块类型
    在package.json中添加:

    "type": "module"
    

    这是Node.js识别ESM模块的基础标识。

  • 调整tsconfig.json的编译配置
    把compilerOptions里的module从commonjs改为ESNext(或ES2020及以上版本),因为ESM模式下需要对应的模块编译目标,同时建议补充模块解析配置:

    "compilerOptions": {
      "module": "ESNext",
      "rootDir": ".",
      "allowJs": true,
      "moduleResolution": "node"
    }
    

    同时确认ts-node配置无误:

    "ts-node": {
      "esm": true
    }
    
  • 调整Gulp文件与启动方式

    1. 将Gulp配置文件命名为gulpfile.ts,并使用ESM语法编写(比如用import gulp from 'gulp'代替const gulp = require('gulp'))。
    2. 绕过Gulp CLI默认的CommonJS加载逻辑,直接通过ts-node启动Gulp,修改package.json的scripts:
      "scripts": {
        "build": "ts-node --esm node_modules/gulp/bin/gulp.js build"
      }
      
      之后运行npm run build即可。
  • 检查依赖版本兼容性
    确保ts-node版本在10.x及以上(对ESM支持更完善),typescript版本建议4.5+,可通过以下命令更新:

    npm install ts-node@latest typescript@latest --save-dev
    

内容的提问来源于stack exchange,提问作者Dolphin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 04:42:07