“Nuxt 拒绝识别我的自定义 Vue (vuecli) 组件库,并显示错误消息‘找不到模块的声明文件’”
P粉212971745
P粉212971745 2024-02-21 14:11:36
[Vue.js讨论组]

我使用本教程制作的 VueCLI 项目构建了一个小型 Vue 组件库: https://javascript.plainenglish.io/how-to-create-test-bundle-vue-components-library-8c4828ab7b00

组件库

VueCLI 项目是使用 Typescript 设置的,因此附带了几个 *.d.ts 文件:

// shims-tsx.d.ts
import Vue, { VNode } from 'vue';

declare global {
  namespace JSX {
    interface Element extends VNode {}
    interface ElementClass extends Vue {}
    interface IntrinsicElements {
      [elem: string]: any
    }
  }
}

// shims-vue.d.ts
declare module '*.vue' {
  import Vue from 'vue';

  export default Vue;
}

我的index.ts文件是我导出所有内容的地方

import ATag from './components/ATag.vue';
import AnotherThing from './components/AnotherThing.vue';
...

export {
  ATag,
  AnotherThing,
  ...
};

和我的 package.json 文件:

{
  "name": "my-ui-components",
  "scripts": {
    "build": "vue-cli-service build --target lib --name my-ui-components ./src/index.ts",
  },
  "main": "./dist/my-ui-components.common.js",
  "files": [
    "dist/*"
  ]
}

构建脚本会生成几个 JS 文件、一个 CSS 文件和一个用于打包图像的文件夹。

我的 Nuxt 项目只是一个样板项目,我通过 ssh 从我们的位存储桶帐户导入组件库:

"dependencies": {
  "my-ui-components": "git+ssh://git@bitbucket.org:my-account/my-ui-components.git",
}

无论我尝试导入我的组件(下游,在我的 Nuxt 应用程序中),如下所示:

pages/Index.vue

我收到此错误:

找不到隐式具有“any”类型的模块“my-ui-components”的声明文件

“ATag.vue”确实没什么特别的:



那么我错过了什么?这将是我第一次体验打字稿,所以我不知道其中的细节。

我认为上游(ui-components 库)声明文件没有在构建过程中使用,或其 Nuxt 存在问题。

P粉212971745
P粉212971745

全部回复(1)
P粉916760429

我认为这是因为你的导出方式。通常我在index.ts中编写导出语句如下

export ATag from './components/ATag.vue';
export AnotherThing from './components/AnotherThing.vue';
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号