首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >找不到模块“vue-tabulator”的声明文件

找不到模块“vue-tabulator”的声明文件
EN

Stack Overflow用户
提问于 2019-11-07 13:30:02
回答 1查看 5.1K关注 0票数 1

我试图在一个简单的Vue应用程序中使用vue-tabulator组件:https://github.com/angeliski/vue-tabulator,该应用程序恰好是用TypeScript编写的。

main.ts

代码语言:javascript
复制
import Vue from 'vue'
import VueTabulator from 'vue-tabulator'
import App from './App.vue'

Vue.config.productionTip = false

Vue.use(VueTabulator)

new Vue({
  render: h => h(App)
}).$mount('#app')

App.ts

代码语言:javascript
复制
import { Component, Vue } from 'vue-property-decorator'

@Component
export default class App extends Vue {}

App.vue

代码语言:javascript
复制
<template>
  <div id="app">
    <h1>Kewl</h1>
  </div>
</template>

<style scoped>
</style>

<script lang="ts" src="./App.ts">
</script>

在使用npm run serve运行我的应用程序时,我有以下内容:

代码语言:javascript
复制
 ERROR  Failed to compile with 1 errors                                                                                                                     2:23:19 PM
This dependency was not found:

* tabulator-tables in ./node_modules/vue-tabulator/dist/vue-tabulator.common.js

To install it, you can run: npm install --save tabulator-tables
Type checking in progress...
ERROR in C:/Users/eperret/Desktop/tabulator-tests/src/main.ts(2,26):
2:26 Could not find a declaration file for module 'vue-tabulator'. 'C:/Users/eperret/Desktop/tabulator-tests/node_modules/vue-tabulator/dist/vue-tabulator.umd.js' implicitly has an 'any' type.
  Try `npm install @types/vue-tabulator` if it exists or add a new declaration (.d.ts) file containing `declare module 'vue-tabulator';`
    1 | import Vue from 'vue'
  > 2 | import VueTabulator from 'vue-tabulator'
      |                          ^
    3 | import App from './App.vue'
    4 | 
    5 | Vue.config.productionTip = false
Version: typescript 3.5.3
Time: 3055ms

最后但并非最不重要的是,packages.json

代码语言:javascript
复制
{
  "name": "tabulator-tests",
  "version": "0.1.0",
  "private": true,
  "scripts": {
    "serve": "vue-cli-service serve",
    "build": "vue-cli-service build",
    "lint": "vue-cli-service lint"
  },
  "dependencies": {
    "core-js": "^3.3.2",
    "vue": "^2.6.10",
    "vue-class-component": "^7.0.2",
    "vue-property-decorator": "^8.3.0",
    "vue-tabulator": "^1.2.2"
  },
  "devDependencies": {
    "@vue/cli-plugin-babel": "^4.0.0",
    "@vue/cli-plugin-eslint": "^4.0.0",
    "@vue/cli-plugin-typescript": "^4.0.0",
    "@vue/cli-service": "^4.0.0",
    "@vue/eslint-config-standard": "^4.0.0",
    "@vue/eslint-config-typescript": "^4.0.0",
    "eslint": "^5.16.0",
    "eslint-plugin-vue": "^5.0.0",
    "typescript": "~3.5.3",
    "vue-template-compiler": "^2.6.10"
  },
  "eslintConfig": {
    "root": true,
    "env": {
      "node": true
    },
    "extends": [
      "plugin:vue/essential",
      "@vue/standard",
      "@vue/typescript"
    ],
    "rules": {},
    "parserOptions": {
      "parser": "@typescript-eslint/parser"
    }
  },
  "postcss": {
    "plugins": {
      "autoprefixer": {}
    }
  },
  "browserslist": [
    "> 1%",
    "last 2 versions"
  ]
}

我检查了这里给出的答案:Could not find a declaration file for module

但我看不出线程中给出的解决方案对我有什么帮助。

我该怎么做?

编辑1

我试图为TypeScript安装vue-tabulator类型,但似乎没有这样的包:

代码语言:javascript
复制
npm install @types/vue-tabulator
npm ERR! code E404
npm ERR! 404 Not Found - GET https://registry.npmjs.org/@types%2fvue-tabulator - Not found
npm ERR! 404
npm ERR! 404  '@types/vue-tabulator@latest' is not in the npm registry.
npm ERR! 404 You should bug the author to publish it (or use the name yourself!)
npm ERR! 404
npm ERR! 404 Note that you can also install from a
npm ERR! 404 tarball, folder, http url, or git url.

编辑2

关于shims,我的src文件夹中有两个相关的文件:

shims-tsx.d.ts

代码语言:javascript
复制
import Vue, { VNode } from 'vue'

declare global {
  namespace JSX {
    // tslint:disable no-empty-interface
    interface Element extends VNode {}
    // tslint:disable no-empty-interface
    interface ElementClass extends Vue {}
    interface IntrinsicElements {
      [elem: string]: any
    }
  }
}

shims-vue.d.ts

代码语言:javascript
复制
declare module '*.vue' {
  import Vue from 'vue'
  export default Vue
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-11-07 13:49:42

首先,尝试为“vue-tabulator”包安装@ type,如果它不存在,则可以为“vue-tabulator”的类型声明添加一个shim文件。

这是因为您使用TS为您的项目,但‘vue-制表器’包不支持TS。它只有那个包的JS版本。

如何添加shims

项目的src文件夹中的

  1. 应该有一个文件夹调用‘shims’
  2. 创建一个新文件,其名称和扩展名类似于

,并在该文件中创建一个新的文件'declare模块‘vue-tabulator’;(声明模块'vue-tabulator';)

  1. 重新启动项目

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58749816

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档