typescript - webpack kunde inte importera App.vue eller annan Vue-komponent


Jag skapar för närvarande ett webpack-baserat projekt och lägger till Vue3 med TypeScript. Men just nu stöter jag på problemet som är TS2307: Cannot find module './App.vue' or its corresponding type declarations.

shsims-vue.d.ts är för närvarande placerad under src-mappen, och den genereras av standardinställningen.

/* eslint-disable */
import VueRouter, { Route } from 'vue-router'

declare module '*.vue' {
    import type { DefineComponent } from 'vue'
    const component: DefineComponent<{}, {}, any>
    export default component

}

Detta är min tsconfig.json

{
    "compilerOptions": {
      "target": "esnext",
      "module": "esnext",
      "strict": true,
      "jsx": "preserve",
      "importHelpers": true,
      "moduleResolution": "node",
      "skipLibCheck": true,
      "esModuleInterop": true,
      "allowSyntheticDefaultImports": true,
      "sourceMap": true,
      "baseUrl": ".",
      "types": [
        "webpack-env"
      ],
      "paths": {
        "@/*": [
          "src/*"
        ]
      },
      "lib": [
        "esnext",
        "dom",
        "dom.iterable",
        "scripthost"
      ]
    },
    "include": [
      "src/**/*.ts",
      "src/**/*.tsx",
      "src/**/*.vue",
      "tests/**/*.ts",
      "tests/**/*.tsx"
, "src/shims-vue.d.ts"    ],
    "exclude": [
      "node_modules"
    ]
  }

Här är min webpack-konfigurationsfil

const HtmlWebpackPlugin = require('html-webpack-plugin');
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
const { VueLoaderPlugin } = require('vue-loader')
const utils = require('./utils')
const path = require('path');

module.exports = {
    mode: 'development',
    entry: './src/main.ts',
    output: {
        path: path.resolve(__dirname, 'dist'),
        filename: 'main.[hash].bundle.js'
    },

    resolve: {
        extensions: ['.ts', '.js', '.vue', '.json'],
        alias: {
            'vue': '@vue/runtime-dom'
        }
    },
    devServer: {
        contentBase: path.join(__dirname, 'public'),
        port: 9000,
        hot: true
    },
    module: {
        rules: [
            {
                test: /\.tsx?$/,
                loader: 'ts-loader',
                options: {
                    appendTsSuffixTo: [/\.vue$/],
                },
                exclude: /node_modules/,
            },
            {
                test: /\.s[ac]ss$/i,
                use: [MiniCssExtractPlugin.loader, "css-loader", "sass-loader"],
            },
            {
                test: /\.m?js$/,
                exclude: /node_modules/,
                use: {
                    loader: "babel-loader"
                }
            },
            {
                test: /\.png/,
                type: 'asset/resource'
            },
            {
                test: /\.vue$/,
                use: {
                    loader: "vue-loader",
                }
            },
        ]
    },
    // to see the source code in browser 
    devtool: 'source-map',
    plugins: [
        new HtmlWebpackPlugin({
            template: './public/index.html'
        }),
        new VueLoaderPlugin(),
        new MiniCssExtractPlugin({
            filename: 'main.[hash].css'
        })
    ]
}

I en annan komponent stöter vi också på detta fel, typ ingen aning om hur detta hände och hur man löser det. Vänligen ge lite klarhet i detta. Tack.