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

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

Stack Overflow用户
提问于 2018-03-13 14:31:52
回答 6查看 58.7K关注 0票数 19

我试图添加到项目中的任何第三方Vue.js库都会引发以下错误:

代码语言:javascript
复制
Could not find a declaration file for module 'vue-xxx'

我尝试过'vue-treeselect‘、'vue-select’、'vue-multiselect‘,结果大致相同(*这些库不允许import Modulename from,但需要const Modulename = require)。

我在"dependencies": {下在package.json中添加了这些内容。

我正在使用dotnet为Vue.js提供的SPA模板。

使用“树-选择”的完整示例

代码语言:javascript
复制
import Treeselect from 'vue-treeselect';

/* ... */

value = null;
source = [
    {
        id: 'node-1',
        label: 'Node 1',
        children: [
            {
                id: 'node-1-a',
                label: 'Node 1-A',
            }
      ]
    },
    {
        id: 'node-2',
        label: 'Node 2',
    }
  ];

/* ... */

<treeselect v-model="value"
                :multiple="true"
                :options="source" />

错误:

代码语言:javascript
复制
in [at-loader] ./ClientApp/components/mycomponent/mycomponent.ts:10:24 
    TS7016: Could not find a declaration file for module 'vue-treeselect'. 'path/to/project/node_modules/vue-treeselect/dist/vue-treeselect.js' implicitly has an 'any' type.

package.json

代码语言:javascript
复制
{
  "name": "MyProject",
  "private": true,
  "version": "0.0.0",
  "dependencies": {
    "dygraphs": "^2.1.0",
    "ol3-layerswitcher": "^1.1.2",
    "vue-treeselect": "^1.0.6"
  },
  "devDependencies": {
    "@types/dygraphs": "^1.1.6",
    "@types/webpack-env": "^1.13.0",
    "@types/vue": "^2.0.0",
    "aspnet-webpack": "^2.0.1",
    "awesome-typescript-loader": "^3.0.0",
    "bootstrap": "^3.3.6",
    "css-loader": "^0.25.0",
    "event-source-polyfill": "^0.0.7",
    "extract-text-webpack-plugin": "^2.0.0-rc",
    "file-loader": "^0.9.0",
    "isomorphic-fetch": "^2.2.1",
    "jquery": "^3.1.1",
    "style-loader": "^0.13.1",
    "typescript": "^2.2.1",
    "url-loader": "^0.5.7",
    "vue": "^2.5.13",
    "vue-loader": "^14.2.1",
    "vue-property-decorator": "^6.0.0",
    "vue-router": "^3.0.1",
    "vue-template-compiler": "^2.5.13",
    "webpack": "^2.2.0",
    "webpack-hot-middleware": "^2.12.2"    
  }
}
EN

回答 6

Stack Overflow用户

发布于 2019-10-04 08:22:55

由于vue-xxxxxx已在JavaScript中生成,因此发生此错误。

方法1:为了避免这个问题,我只是用标准的require()替换它

代码语言:javascript
复制
const vue-xxxxxx = require('vue-xxxxxx');
// import { vue-xxxxxx } from 'vue-xxxxxx'

方法2:为了避免这个问题,我只是替换了tsconfig.json中的这些行

"noImplicitAny": false,

"allowJs": true,

现在可以使用语句,如下所示:

代码语言:javascript
复制
import { vue-xxxxxx } from 'vue-xxxxxx'

享受:)

票数 58
EN

Stack Overflow用户

发布于 2018-03-13 14:56:31

如果@types/vue-treeselect不存在,则可以使用环境定义手动声明模块。

在项目的某个位置创建一个.d.ts (警告:它不应该使用importexport)并定义您的模块。如果您不想键入-检查它(使导入的所有内容都被推断为any):

代码语言:javascript
复制
declare module 'vue-treeselect'

如果你想打字-检查它:

代码语言:javascript
复制
declare module 'vue-treeselect' {
  export function something(): void
}
票数 24
EN

Stack Overflow用户

发布于 2021-03-23 11:44:51

由于任何给定的解决方案本身并没有对我有所帮助,所以我不得不在我的项目根文件夹中创建一个专用的vendor.d.ts (shims-vue.d.ts不工作)文件,然后放在下面的行中:

代码语言:javascript
复制
declare module 'my-module-name-here';

来源

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

https://stackoverflow.com/questions/49258849

复制
相关文章

相似问题

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