如何访问nuxt插件中生成的类型?

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

我正在构建一个具有类型生成功能的 nuxt 模块。在模块中,我想生成类型,将它们添加到

.nuxt/types/
,然后在插件中使用它们将它们传递给通用函数。我该怎么做?

我想要这样的东西:

// module.ts

export default defineNuxtModule({
  meta: {
   // ...
  },
  defaults: {
   // ...
  },
  setup(_options, nuxt) {
    addTypeTemplate({
      filename: 'foo-types.d.ts',
      getContents: () => `type TypeForGeneric = Record<string, unknown>`,
    })

    nuxt.hook('prepare:types', async ({ references }) => {
      references.push({ path: resolve(nuxt.options.buildDir, 'types/foo-types.d.ts') })
    })
    
    addPlugin(resolve('./runtime/plugin'))
  },
})

// runtime/plugin.ts

import { defineNuxtPlugin } from '#app'
import type { TypeForGeneric } from '' // <= where can I import it from?

export default defineNuxtPlugin((nuxtApp) => {
  const fooWithTypes = foo<TypeForGeneric>()

  return {
    provide: {
      fooWithTypes,
    },
  }
})
vue.js nuxtjs3 nuxt3 nuxt-module
1个回答
0
投票

对于您的示例,类型将在

.nuxt/foo-types.d.ts
生成,并且应该可以从此路径导入:
#build/foo-types.d.ts
#build
别名在
.nuxt/tsconfig.json
中定义。

© www.soinside.com 2019 - 2024. All rights reserved.