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

如何在gatsby-node.js文件中调用TypeScript编写的函数

完全可以实现你的需求,你遇到的报错是因为默认Node.js的CommonJS模块系统不识别.ts后缀,也没有内置TypeScript编译能力,直接导入.ts文件时就会抛出找不到模块的错误。

解决方案

方案1:将gatsby-node改为TS格式(推荐)

Gatsby 从v2.20版本开始原生支持TS格式的项目配置文件,你只需要把原来的gatsby-node.js重命名为gatsby-node.ts,就可以直接在里面导入你写的.ts后缀辅助函数,Gatsby会自动处理TypeScript的编译逻辑,无需额外配置编译工具。

操作示例:

  1. 重命名gatsby-node.js为gatsby-node.ts
  2. 在gatsby-node.ts中按正常TS语法导入辅助函数:
import { yourFunction } from './src/generators/usda/helper.ts'
  1. 直接执行gatsby develop即可正常运行。

方案2:保留gatsby-node.js格式

如果你不想改动原有gatsby-node.js的格式,可以选择以下两种方法之一:

  • 预编译TS文件:在运行Gatsby命令前,先执行tsc命令把所有TypeScript辅助文件编译为JS文件,导入的时候直接引用编译后的.js文件即可
  • 运行时编译TS:安装ts-node和typescript依赖,然后在gatsby-node.js的最顶部添加如下代码:
require('ts-node/register')
// 后续就可以正常引入.ts文件了
const { yourFunction } = require('./src/generators/usda/helper.ts')
注意事项

你需要确保项目根目录的tsconfig.json配置符合Node.js运行要求,推荐将compilerOptions.module设置为CommonJS,避免编译后出现模块导入导出的兼容问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 04:57:04