代码之家  ›  专栏  ›  技术社区  ›  Zoltán Matók

Vue/Typescript:找不到模块“Vue simplemde”

  •  0
  • Zoltán Matók  · 技术社区  · 5 年前

    我可以进口 npm模块没有问题 比如axios、firebase等,但出于某种原因 import MDE from 'vue-simplemde' 抛出错误:

    Cannot find module 'vue-simplemde'.Vetur(2307)
    

    代码:

    <script lang="ts">
       import Vue from 'vue'
       import firebase from 'firebase/app' // Works!
       import MDE from 'vue-simplemde' // Cannot find module 'vue-simplemde'.Vetur(2307)
       import axios from 'axios' // Works!
    
       export default Vue.extend({
           [...]
       })
    </script>
    

    package.json:

    [...]
    "dependencies": {
        [...]
        "firebase": "^7.14.4",
        "vue-simplemde": "^1.0.6",
        [...]
      },
    [...]
    

    编辑器在编译代码后确实可以工作,但错误仍然存在。 我可以忽略这个错误 // @ts-ignore ,但这个问题会在Vue组件的其余部分产生类型检查问题,抛出 Property XX does not exist on type CombinedVueInstance... 错误。评论这一进口解决了这些问题。

    我可以使这个软件包与打字稿兼容吗?
    我可以在某个地方以某种方式声明一个模块吗?

    0 回复  |  直到 5 年前
        1
  •  1
  •   discolor    5 年前

    是的,你可以为此声明一个模块。

    我假设你的数据库中已经有一个“shims-vue.d.ts”文件 src dir。如果没有,请创建一个

    // shims-vue.d.ts
    declare module "*.vue" {
      import Vue from "vue";
      export default Vue;
    }
    
    declare module "vue-simplemde" {
      const mde: any;
      export default mde;
    }