Implementierung von vite+vue3.0+ts+element-plus zum schnellen Erstellen eines Projekts

Implementierung von vite+vue3.0+ts+element-plus zum schnellen Erstellen eines Projekts

Vite hat Version 2.x veröffentlicht. Ich habe beschlossen, ein einfaches Projekt zu erstellen, um es zu lernen. Ich habe Element-Plus und Typescript kombiniert, was für jeden Front-End-Entwickler ein Muss sein wird, und den folgenden Inhalt implementiert.

vite ist ein Build-Tool für die Webentwicklung, das auf nativem ESM basiert. In der Entwicklungsumgebung wird es basierend auf den nativen ES-Importen des Browsers entwickelt und in der Produktionsumgebung basierend auf Rollup gepackt.

Vite-Funktion

  • Schneller Kaltstart: kein Warten auf Verpackungsvorgänge nötig;
  • Sofortige Hot-Modul-Updates: Durch die Entkopplung von Austauschleistung und Modulmenge sind schnelle Updates möglich.
  • Echte On-Demand-Kompilierung: Kein Warten mehr auf die Kompilierung der gesamten Anwendung, was eine enorme Veränderung darstellt.

Umgebung verwenden

  • Knoten v12.19.0
  • @vue/cli 4.5.8

Erstellen des Projekts

npm init vite-app <Projektname>
cd <Projektname>
npm installieren
npm-Ausführung dev

oder

yarn create vite-app <Projektname>
cd <Projektname>
Garn
Garn-Entwickler

Konfiguration

vite.config.ts

vite.config.ts entspricht vue.config.js im @vue-cli-Projekt

Pfad von „Pfad“ importieren;

const pathResolve = (pathStr: string) => {
  Rückgabepfad.Auflösen(__dirname, pathStr);
}

const konfiguration = {
  Basis: './', //Der grundlegende öffentliche Pfad beim Bereitstellen in der Produktion. @Standard '/'
  Alias: {
    '/@/': Pfadauflösung('./src'),
  },
  outDir: „vite-init“, // wo die Build-Ausgabe platziert wird. Das alte Verzeichnis wird vor dem Erstellen gelöscht. @Standard 'Verteilung'
  minify: 'esbuild', //Komprimierungsmethode während des Build-Hostnamens: 'localhost', //Lokale Serviceadresse Port: '8800', //Service-Portnummer open: false, //Ob beim Starten des Dienstes https im Browser geöffnet werden soll: false, //Ob https geöffnet werden soll
  ssr: false, //Gibt an, ob auf der Serverseite gerendert werden soll optimizeDeps: { //Drittanbieterkonfiguration einführen include: ['axios']
  },
  // Proxy: {//Proxy-Konfiguration// '/api': {
  // Ziel: 'http://xx.xx.xx.xx:xxxx',
  // changeOrigin: true,
  // ws: wahr,
  // umschreiben: (Pfad: Zeichenfolge) => { Pfad.ersetzen(/^\/api/, '') }
  // }
  // }
}
module.exports = Konfiguration;

tsconfig.json

{
  "Compileroptionen": {
    "target": "ES5", //Geben Sie die Zielversion von ECMAScript an: „ES3“ (Standard), „ES5“, „ES2015“, „ES2016“, „ES2017“, „ES2018“, „ES2019“, „ES2020“ oder „ESNEXT“.
    "Modul": "commonjs", //Geben Sie die Modulcodegenerierung an: „none“, „commonjs“, „amd“, „system“, „umd“, „es2015“, „es2020“ oder „ESNext“.
    "strict": true, //Ob alle Optionen zur strengen Typprüfung aktiviert werden sollen.
    "baseUrl":"./", //Basisverzeichnis, das zum Auflösen nicht absoluter Modulnamen verwendet wird.
    "Pfade": {
      "/@/*": ["./quelle/*"]
    },  
    "noImplicitAny": true, //Löst einen Fehler für Ausdrücke und Deklarationen aus, die einen impliziten „any“-Typ haben.
    „esModuleInterop“: true, //Aktivieren Sie die Interoperabilität zwischen CommonJS- und ES-Modulen, indem Sie Namespace-Objekte für alle Importe erstellen. Impliziert „allowSyntheticDefaultImports“.
    „experimentalDecorators“: true, //Unterstützt experimentelle Unterstützung für ES7-Dekoratoren.
    "skipLibCheck": true, //Typprüfung der Deklarationsdateien überspringen.
    "forceConsistentCasingInFileNames": true //Deaktiviert inkonsistente Groß-/Kleinschreibung von Verweisen auf dieselbe Datei.
  }
}

App.vue

App.vue ändern

<Vorlage>
  <img alt="Vue-Logo" src="./assets/logo.png" />
  <Router-Ansicht />
</Vorlage>

<Skript>
Standard exportieren {
  Name: "App",
  aufstellen() {

  }
}
</Skript>

Ansichten

Erstellen Sie einen neuen Ansichtenordner unter src und erstellen Sie index.vue im Ordner

<Vorlage>
  <HalloWelt :msg="msg"></HalloWelt>
</Vorlage>

<script lang="ts">
importiere HelloWorld aus "/@/views/HelloWorld.vue";
importiere { defineComponent } von "vue";
exportiere StandarddefiniereKomponente({
  Name: "Home",
  Komponenten: { HalloWelt },
  aufstellen() {
    zurückkehren {
      Nachricht: "Hallo Welt",
    };
  },
});
</Skript>

PS: Achten Sie beim Importieren von .vue-Dateien darauf, das Suffix mitzubringen, da sonst eine Meldung angezeigt wird, dass die Datei nicht gefunden werden kann

Erstellen Sie HelloWorld.vue im Ordner „views“

<Vorlage>
  <h1>{{ msg }}</h1>
  <button @click="realTime.count++">Anzahl ist: {{ realTime.count }}</button>
  <button @click="handleclick">Klicken, um zu anderen Routen zu springen</button>
  <p>Bearbeiten Sie <code>components/HelloWorld.vue</code>, um den Hot-Module-Ersatz zu testen.</p>
</Vorlage>

<Skript>
importiere { defineComponent, reaktiv } von "vue";
importiere { useRouter } von 'vue-router'
exportiere StandarddefiniereKomponente({
  Name: 'Index',
  Requisiten: { msg: { Typ: String, Standard: 'Willkommen bei vue3' } },
  setup(Requisiten) {
    const router = useRouter();
    Lassen Sie realTime = reaktiv({Anzahl: 0});

    Funktion handleclick() {
      router.push({ Pfad: '/anderes' })
    }
    zurückkehren {
      Nachricht: Eigenschaften.Nachricht,
      Echtzeit,
      klick auf den Griff
    }
  }
})
</Skript>

Router

Erstellen Sie einen neuen Router-Ordner unter src und erstellen Sie index.ts im Ordner

importiere { createRouter, createWebHistory, RouteRecordRaw } von 'vue-router'

const routes: Array<RouteRecordRaw> = [
  {
    Weg: '/',
    Komponente: () => import("/@/views/index.vue")
  },
]

exportiere Standard createRouter({
  Verlauf: createWebHistory(),
  Routen
})

Haupt-TS

Ändern Sie die ursprüngliche Datei main.js in main.ts. Vergessen Sie nach der Änderung nicht, auch index.html in main.ts zu ändern.

importiere { createApp } von 'vue'
Router aus „./router/index“ importieren
App aus „./App.vue“ importieren
Importieren Sie ElementPlus von „element-plus“.

importiere 'element-plus/lib/theme-chalk/index.css'
importiere './reset.css'

const app = erstelleApp(App);
app.use(ElementPlus);
app.use(router);
app.mount('#app');

Aufmerksame Schüler haben zu diesem Zeitpunkt möglicherweise Folgendes festgestellt: Der folgende Fehler tritt auf, wenn die VUE-Datei in die TS-Datei eingefügt wird, hat jedoch keinen Einfluss auf den normalen Betrieb des Codes

Fehlergrund: Typescript kann nur .ts-Dateien verstehen, keine .vue-Dateien

Lösung: Erstellen Sie eine Datei mit der Endung .d.ts im Stammverzeichnis des Projekts oder im Ordner src und schreiben Sie den folgenden Inhalt:

Deklariere das Modul '*.vue' { }
Deklarieren Sie das Modul „*.js“
Deklarieren Sie das Modul „*.json“.
Deklarieren Sie das Modul „*.svg“
Modul „*.png“ deklarieren
Modul „*.jpg“ deklarieren
Deklarieren Sie das Modul „*.jpeg“.
Deklarieren Sie das Modul „*.gif“
Modul „*.bmp“ deklarieren
Deklarieren Sie das Modul „*.tiff“.

Nachdem das Projekt abgeschlossen ist, können Sie nun voller Freude Code schreiben.

Dies ist das Ende dieses Artikels über die Implementierung der schnellen Projektkonstruktion von vite+vue3.0+ts+element-plus. Weitere verwandte Inhalte zur Konstruktion von vite+vue3.0+ts+element-plus finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder durchsuchen Sie die folgenden verwandten Artikel weiter. Ich hoffe, Sie werden 123WORDPRESS.COM in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • Vite erstellt Projekte und unterstützt Micro-Frontends
  • Dieser Artikel zeigt Ihnen, was Vite mit der Anfrage des Browsers macht
  • Vite+Electron zum schnellen Erstellen von VUE3-Desktopanwendungen
  • So fügen Sie Vite-Unterstützung zu alten Vue-Projekten hinzu
  • Vite2.0 Fallstricke
  • Vue3.0+vite2 implementiert dynamisches asynchrones Lazy Loading von Komponenten
  • Schritte zum Erstellen des Projekts vite+vue3+element-plus
  • Lernen Sie die Prinzipien von Vite

<<:  Tomcat-Sicherheitsspezifikationen (Tomcat-Sicherheitsverstärkung und -spezifikationen)

>>:  Methode für die Sicherheitseinstellungen des Tomcat-Servers

Artikel empfehlen

So erstellen Sie eine PHP+Nginx+Swoole+MySQL+Redis-Umgebung mit Docker

Betriebssystem: Alibaba Cloud ESC-Instanz centos7...

Zehn nützliche und einfache MySQL-Funktionen

Funktion 0. Aktuelle Uhrzeit anzeigen Befehl: sel...

Die Rolle und Öffnung des MySQL-Protokolls für langsame Abfragen

Vorwort Das MySQL Slow Query Log ist ein Protokol...

Detaillierte Schritte zur schnellen Installation von Openshift

Der schnellste Weg, die neueste Version von OpenS...

Konfigurationsmethode für die VMware Kali-Umgebung virtueller Maschinen

1|0 Kompilieren Sie den Kernel (1) Führen Sie den...

So erstellen Sie schnell MySQL Master-Slave mit mysqlreplicate

Einführung Das mysql-utilities-Toolset ist eine S...

Mehrere Möglichkeiten zur Lösung von CSS-Stilkonflikten (Zusammenfassung)

1. Verfeinern Sie den Selektor Durch die Verwendu...