在Typescript文件中导入时找不到Vue模块

时间:2017-11-10 10:30:17

标签: typescript vue.js

我有一个使用单个文件类组件和打字稿加载器的Vue项目。我使用VS Code与Vetur插件在单个文件.vue组件中获得非常好的代码完成。这工作正常,除了我的entry.ts文件,我在其中创建根Vue组件:

在entry.ts中,我无法导入vue模块!

index.ts

import Vue from 'vue'                       // this is ok
import App from './components/app.vue'      // vue file not found!
new App({el : '#app'})

ERROR Cannot find module './components/app.vue

app.vue

<script lang="ts">
    import Vue from 'vue'                       // this is ok
    import Card from "./card.vue"               // here it works!

    export default class App extends Vue {
    }
</script>

.vue文件中,可以导入其他.vue个模块。

我尝试省略.vue扩展程序,但结果相同。

我尝试将.vue扩展名添加到.d.ts文件中,但这会混淆Vetur插件,并解决问题(模块只能从.ts文件中运行,而不能从.vue文件中运行)

1 个答案:

答案 0 :(得分:0)

Hi Typescript会给你错误,因为它不知道.vue文件是什么。

但是有一个解决方法。

在项目目录中,您可以添加名为vue-shims.d.ts

的文件

里面放了以下代码:

declare module "*.vue" {
  import Vue from "vue";
  export default Vue;
}

现在打字稿会理解.vue文件。