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

在Turborepo中使用Remix时出现未知.ts文件扩展名错误

Monorepo中集成Remix与react18-themes时出现TS文件扩展名识别错误

问题概述

我正在为react18-themes库开发Remix示例,已有可独立运行的示例项目,但在Monorepo环境下搭建时触发了Node.js模块解析错误:Remix尝试直接读取react18-themes包的TS源文件(packages\react18-themes\index.ts),而非编译后的JS产物。即使将依赖版本从workspace:*替换为已发布的^1.0.8,问题依然存在。

错误日志

TypeError: Unknown file extension ".ts" for ...react18-themes\packages\react18-themes\index.ts
at new NodeError (node:internal/errors:399:5)
remix-example:dev:     at Object.getFileProtocolModuleFormat [as file:] (node:internal/modules/esm/get_format:79:11)
remix-example:dev:     at defaultGetFormat (node:internal/modules/esm/get_format:121:38)
remix-example:dev:     at defaultLoad (node:internal/modules/esm/load:81:20)
remix-example:dev:     at nextLoad (node:internal/modules/esm/loader:163:28)
remix-example:dev:     at ESMLoader.load (node:internal/modules/esm/loader:605:26)
remix-example:dev:     at ESMLoader.moduleProvider (node:internal/modules/esm/loader:457:22)
remix-example:dev:     at new ModuleJob (node:internal/modules/esm/module_job:64:26)
remix-example:dev:     at ESMLoader.#createModuleJob (node:internal/modules/esm/loader:480:17)
remix-example:dev:     at ESMLoader.getModuleJob (node:internal/modules/esm/loader:434:34)

环境信息

  • 操作系统:Windows 11
  • 问题复现分支:react18-themes仓库的remix分支

可能的解决方向

  • 检查包入口配置:确认react18-themes包的package.json中,main、module字段指向编译后的JS文件(如dist/index.js),而非TS源文件;同时确保types字段正确指向类型声明文件。
  • 验证Monorepo依赖链路:如果使用pnpm/yarn Workspace,确保react18-themes包已完成构建,且Remix项目通过正确的包链路引用编译产物,而非直接读取源码目录。
  • 配置Remix转译规则:在Remix的remix.config.js中,通过serverDependenciesToBundle选项将react18-themes加入转译列表,让Remix能正确处理该包的模块格式。
  • 调整ES模块配置:确认react18-themes包的package.json中"type"字段设置正确(如ES模块设为"module"),同时检查Node.js的模块解析模式是否与项目匹配。

内容的提问来源于stack exchange,提问作者Mayank Kumar Chaudhari

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 01:00:11