Javascript 如何将从typescript传输的节点模块导入Nuxt?

Javascript 如何将从typescript传输的节点模块导入Nuxt?,javascript,typescript,vue.js,node-modules,nuxt.js,Javascript,Typescript,Vue.js,Node Modules,Nuxt.js,我有一个从Nswag生成的typescript客户端,我想在Nuxt应用程序中传输和使用它 我使用基本的tsconfig将我的apiService.ts客户端传输到apiService.js: { "compilerOptions": { "module": "ES6", "target": "ES6" } } 并将其导入到我的项目中,我尝试了require和import import { PersonClient } from "./../services/api/a

我有一个从Nswag生成的typescript客户端,我想在Nuxt应用程序中传输和使用它

我使用基本的tsconfig将我的apiService.ts客户端传输到apiService.js:

{
  "compilerOptions": {
    "module": "ES6",
    "target": "ES6"
  }
}
并将其导入到我的项目中,我尝试了require和import

import { PersonClient } from "./../services/api/apiService.js";
const apiService = require("./../services/api/apiService.js");
应用程序将生成,但当我尝试使用客户端加载页面时,我得到:

exports is not defined
    at Module../services/api/apiService.js
我试过在谷歌上搜索,但我就是不知道该问什么问题。如何使用apiService.js


ViualStudio代码在我将其导入项目时为我提供了语法高亮显示,因此这应该是可能的?

您可能需要显式转换为esm格式。但也许只需将TS支持添加到您的应用程序中就更容易了。如果这不起作用,试着创建一个MRE(),我确实解决了我的问题,就像你说的,通过转换成esm格式。我是按照这个指南来做的:感觉不是很优雅,我不得不稍微调整一下tsconfig,而且我对tsconfig没有什么经验,所以在回答我自己的问题之前,我会等待并看看是否有人有更好的解决方案或指南。我也可以做一个MRE,这样问题就更容易理解了。许多库都提供现成的esm,不需要特殊的步骤,所以您的案例有点不同寻常。是否确定节点模块的dist文件夹中没有esm文件?你可以告诉webpack总是用一行额外的配置来解析esm,如果它在那里,而webpack不智能的话。我相信有一种更简单的方法可以做到这一点,我认为Nuxt支持esm的开箱即用。我只是不知道如何设置它。我希望在这里得到答案。让我的应用程序支持typescript也是我应该研究的一个解决方案。