Der Titel wird wie folgt umgeschrieben: Beim Importieren einer index.ts-Datei ohne Dateierweiterung in Vue 3 und Vite wird ein Fehlerlink erzeugt, wenn eine index.vue-Datei im selben Ordner gefunden wird.
P粉194919082
P粉194919082 2023-08-14 12:39:38
0
1
636
<p>Wie importiere ich eine index.ts-Datei mit Vue 3 und Vite, ohne die Dateierweiterung anzugeben, wenn sich im selben Ordner eine andere index.vue-Datei befindet? </p> <p>Ich versuche die Komponente zu importieren: </p> <pre class="brush:php;toolbar:false;">import { Component } from '@/app/some_component'</pre> <pre class="brush:php;toolbar:false;">src | └─── App │ └───some_component │ index.ts │ index.vue │ ...</pre> <p>Aber Webstorm verweist standardmäßig auf die Datei index.vue. </p> <p>Wie kann Webstorm die Datei <strong>index.ts</strong> standardmäßig importieren? </p> <p><strong>P.S.</strong> Übrigens funktioniert alles einwandfrei, wenn ich die App erstelle, es scheint ein Verknüpfungsproblem mit Webstorm zu sein.</p> <p>这是<strong>vite.config.ts</strong>的内容</p> <pre class="brush:php;toolbar:false;">import { defineConfig } from 'vite' Pfad aus „Pfad“ importieren vue aus „@vitejs/plugin-vue“ importieren tsconfigPaths aus „vite-tsconfig-paths“ importieren Standard exportieren defineConfig({ Plugins: [vue(), tsconfigPaths()], Server: { Gastgeber: wahr, Hafen: 5000, }, Vorschau: { Port: 8000 }, lösen: { alias: { '@': path.resolve(__dirname, "./src"), }, }, CSS: { Präprozessoroptionen: { scss: { zusätzlicheDaten: ` @import "@/app/styles/vars.scss"; @import "@/app/styles/mixins.scss"; ` } } }, })</pre> <p>这是<strong>tsconfig.json</strong>的内容</p> <pre class="brush:php;toolbar:false;">{ „compilerOptions“: { „Ziel“: „ES2020“, „useDefineForClassFields“: true, „module“: „ESNext“, „lib“: [„ES2020“, „DOM“, „DOM.Iterable“], „skipLibCheck“: wahr, /* Bundler-Modus */ „moduleResolution“: „bundler“, „allowImportingTsExtensions“: true, „resolveJsonModule“: true, „isolatedModules“: true, „noEmit“: wahr, „jsx“: „bewahren“, /* Fusseln */ „streng“: wahr, „noUnusedLocals“: wahr, „noUnusedParameters“: wahr, „noFallthroughCasesInSwitch“: wahr, "Pfade": { "@/*": [ "./src/*" ] } }, "include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx"], „references“: [{ „path“: „./tsconfig.node.json“ }] }</pre> <p><br /></p>
P粉194919082
P粉194919082

Antworte allen(1)
P粉022140576

由于Vite的存在,您可以在导入文件时无需指定扩展名。但是,正如您提到的,如果两个文件在同一个文件夹下具有相同的名称,那么在导入任何一个文件时可能会遇到混淆的问题。 一个好的办法是为文件使用不同的名称,并使用相应的名称导入它们。

然而,如果有任何特定的要求需要使用相同的Vue和TS文件名称,那么一种方法是使用Vite的路径别名功能。您需要做的是-

在您的vite.config.ts文件中为这些文件定义路径别名-

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

在您的tsconfig.json中,修改compilerOptions部分以包含别名的路径映射-

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

现在,您可以像这样轻松导入这些文件-

import something from '@indexTs';
import IndexVueComponent from '@IndexVue'
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!