使用 ts-node (或类似的)导入使用 ESM 和 CommonJS 导出的两个 npm 包,使用 esm import

问题描述 投票:0回答:1

我想要使用以下配置为我的项目进行设置。

  1. 我想在我的源代码中使用打字稿。
  2. 我只想在我的源代码中使用 ESM,即。
    import foo from 'bar'
  3. 执行 index.ts 文件时,我不希望在 npm_modules 之外使用 dist 文件。
  4. 我希望能够加载使用
    module.exports = ...
  5. 导出的文件
  6. 我希望能够加载使用
    export default { foo: ... }
  7. 导出的文件
  8. 我不想使用 .mjs 扩展名。

其中许多功能可以通过

next.js
vite.js
cra
等框架开箱即用。然而,这些都有很多我不想要的附加功能和限制。例如,我不需要的开发服务器,以及对
src
文件夹必须位于何处的限制。

简而言之,我只想使用各种第三方导入来执行自己编写的打字稿ESM文件。

最好的方法是什么?找到现有的框架,比如 ts-node?或者从头开始设置一些东西?

非常感谢任何有关如何设置或检查哪些框架的意见。

我目前正在尝试的是 ts-node,但我无法让 ESM 导入工作。我收到一条消息,说我应该在 package.json 中将“type”设置为

module
。但根据我的经验,这将禁止使用 CommonJS 导出加载第 3 方代码。

是否可以为ts-node设置特定的加载器?

node.js typescript npm es6-modules ts-node
1个回答
0
投票
  1. tsx
    跑步者 - https://github.com/esbuild-kit/tsx.
    tsx foo.ts
    奔跑,
    tsx --inspect watch foo.ts
  2. tsconfig 中的
  3. noEmit
    esModuleInterop
  4. "type": "module"
    "main": "src /index.ts"
    运行 tsx .
© www.soinside.com 2019 - 2024. All rights reserved.