vue 加入ts 不认识.vue文件。

请教几个问题
1)lang="ts"的语法块中 import .vue 文件 必须包含export default吗。目前如果不加入export default 就会报错。
2)App.vue 加入了export defalut 以後挂載render 的時候报这个错image.png
3)lang="ts"的vue 文件可以引入 正常的js的.vue文件吗

感谢 (PS:declear 不管用 还是无法识别.vue 文件)

App.vue

<template>
    <router-view></router-view>
</template>
<script lang="ts">
    export default{
    };
</script>

main.ts


import Vue from 'vue';
import App from './App.vue';
import store from './store/store';
import router from './route';
import auth from './services/auth';
import Element from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';
// 项目自身样式
import './scss/style.scss';
Vue.use(Element);
// 初始化
auth.init().then(function() {
    new Vue({
        store,
        router,
        render: h => h(App),
    }).$mount('#app');
}).catch((error) => {
    console.error(error);
});

render: h => h(App), App 报错

tslint.json

{
    "defaultSeverity": "error",
    "extends": "tslint-config-standard",
    "globals": {
        "require": true
    },
    "rules": {
        "space-before-function-paren": false,
        "whitespace": [false],
        "no-consecutive-blank-lines": false,
        "no-angle-bracket-type-assertion": false,
        "no-empty-character-class": false
    }
}

tsconfig.json

{
    "include": [
        "src/**/*"
    ],
    "exclude": [
        "node_modules"
    ],
    "compilerOptions": {
        "typeRoots": [
            "./types",
            "./node_modules/vue/types",
            "./src"
        ],
        "plugins": [{ "name": "ts-vue-plugin" }],
        // 解析非相对模块名的基准目录
        "baseUrl": ".",
        // 指定特殊模块的路径
        "paths": {
            "@/*": ["*", "src/*"]
        },
        "jsx": "preserve",
        "jsxFactory": "h",
        // 允许从没有设置默认导出的模块中默认导入
        "allowSyntheticDefaultImports": true,
        // 启用装饰器
        "experimentalDecorators": true,
        // 允许编译javascript文件
        "allowJs": true,
        // 采用的模块系统
        "module": "es2015",
        // 编译输出目标 ES 版本
        "target": "es5",
        // 如何处理模块
        "moduleResolution": "node",
        // 将每个文件作为单独的模块
        "isolatedModules": true,
        // 编译过程中需要引入的库文件的列表
        "lib": [
            "dom",
            "es5",
            "es6",
            "es7",
            "es2015.promise"
        ],
        "sourceMap": true,
        "pretty": true
    }
}

引入 其他目录的.vue 文件就cannot find

阅读 7.3k
2 个回答

1.是的
2.报的是ts类型不匹配的错误,方便的话贴一下App.vue和main.ts的代码吧
3.可以的

解决了,只把xx.d.ts文件扔到目录下没生效。 通过tsconfig.js 的files去指定文件就可以了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题