recherche

Maison  >  Questions et réponses  >  le corps du texte

Le titre est réécrit comme suit : L'importation d'un fichier index.ts sans extension de fichier dans Vue 3 et Vite produit un lien d'erreur lorsqu'un fichier index.vue est rencontré dans le même dossier.

<p>Comment importer un fichier index.ts en utilisant vue 3 et vite sans spécifier l'extension du fichier lorsqu'il y a un autre fichier index.vue dans le même dossier ? </p> <p>J'essaie d'importer le composant : </p> <pre class="brush:php;toolbar:false;">importer { Component } depuis '@/app/some_component'</pre> <pre class="brush:php;toolbar:false;">src | └─── application │ └───some_component │ index.ts │ index.vue │ ...</pré> <p>Mais Webstorm fait référence au fichier index.vue par défaut. </p> <p>Alors, comment faire pour que Webstorm importe le fichier <strong>index.ts</strong> </p> <p><strong>P.S.</strong> Au fait, tout fonctionne bien lorsque je crée l'application, cela semble être un problème de liaison avec Webstorm.</p> <p>这是<strong>vite.config.ts</strong>的内容</p> <pre class="brush:php;toolbar:false;">importer { definitionConfig } depuis 'vite' importer le chemin depuis 'chemin' importer la vue depuis '@vitejs/plugin-vue' importer tsconfigPaths depuis 'vite-tsconfig-paths' exporter la définition par défaut ({ plugins : [vue(), tsconfigPaths()], serveur : { hôte : vrai, port : 5000, }, Aperçu: { port : 8000 }, résoudre: { alias: { '@' : chemin.resolve(__dirname, "./src"), }, }, css : { Options du préprocesseur : { scss : { Données supplémentaires : ` @import "@/app/styles/vars.scss"; @import "@/app/styles/mixins.scss"; ` } } }, })</pré> <p>这是<strong>tsconfig.json</strong>的内容</p> <pre class="brush:php;toolbar:false;">{ "Options du compilateur": { "cible": "ES2020", "useDefineForClassFields": vrai, "module": "ESNext", "lib": ["ES2020", "DOM", "DOM.Iterable"], "skipLibCheck": vrai, /* Mode regroupeur */ "moduleResolution": "groupeur", "allowImportingTsExtensions": vrai, "resolveJsonModule": vrai, "isolatedModules": vrai, "noEmit": vrai, "jsx": "préserver", /* Peluche */ "strict" : vrai, "noUnusedLocals": vrai, "noUnusedParameters": vrai, "noFallthroughCasesInSwitch": vrai, "chemins": { "@/*": [ "./src/*" ] } }, "include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx"], "références": [{ "chemin": "./tsconfig.node.json" }] }</pré> <p><br /></p>
P粉194919082P粉194919082471 Il y a quelques jours730

répondre à tous(1)je répondrai

  • P粉022140576

    P粉0221405762023-08-15 10:25:04

    Grâce à Vite, vous pouvez importer des fichiers sans spécifier d'extension. Cependant, comme vous l'avez mentionné, si deux fichiers portent le même nom dans le même dossier, vous risquez de rencontrer une confusion lors de l'importation de l'un ou l'autre fichier. Une bonne idée est d'utiliser des noms différents pour les fichiers et de les importer avec les noms correspondants.

    Cependant, s'il existe des exigences spécifiques nécessitant l'utilisation des mêmes noms de fichiers Vue et TS, une solution consiste à utiliser la fonctionnalité d'alias de chemin de Vite. Ce que vous devez faire, c'est-

    Définissez les alias de chemin pour ces fichiers dans votre vite.config.tsfichier-

    resolve: {
      alias: {
        'IndexTs': 'index.ts文件的路径',
        'IndexVue': 'index.vue文件的路径
      }
    },

    Carte dans votre section tsconfig.json中,修改compilerOptions avec un chemin contenant l'alias -

    {
      "compilerOptions": {
        ...,
        "paths": {
          ...,
          "@indexTs": ["index.ts文件的路径"],
          "@indexVue": ["index.vue文件的路径"]
        }
      }
    }

    Vous pouvez désormais facilement importer ces fichiers comme celui-ci -

    import something from '@indexTs';
    import IndexVueComponent from '@IndexVue'

    répondre
    0
  • Annulerrépondre