Vue3 Vue CLI-Konfiguration für mehrere Umgebungen

Vue3 Vue CLI-Konfiguration für mehrere Umgebungen

1. Einleitung

Dies ist weniger problematisch als zuvor. Einfach ausgedrückt werden Konfigurationsdateien verwendet, um mehrere Umgebungen zu verwalten und einen Umgebungswechsel zu realisieren.

2. Umschalten

1. Fügen Sie Entwicklungs- und Produktionskonfigurationsdateien hinzu

Erstellen Sie im Stammverzeichnis des Webs eine Konfigurationsdatei zum Wechseln der Entwicklungsumgebung .env.dev mit folgendem Inhalt:

NODE_ENV=Entwicklung
VUE_APP_SERVER=http://127.0.0.1:8880

Erstellen Sie im Stammverzeichnis des Webs eine Online-Umgebungswechselkonfigurationsdatei .env.prod mit folgendem Inhalt:

NODE_ENV=Produktion
VUE_APP_SERVER=https://www.baidu.com

2. Ändern Sie die Kompilierung und den Start, um mehrere Umgebungen zu unterstützen

Änderungen in package.json vornehmen, also den ursprünglichen server anpassen,

Der Beispielcode lautet wie folgt:

{
  "Name": "Webseite",
  "version": "0.1.0",
  "privat": wahr,
  "Skripte": {
    "serve-dev": "vue-cli-service serve --mode dev --port 8080",
    "serve-prod": "vue-cli-service serve --mode prod",
    "Build-dev": "vue-cli-service build --mode dev",
    "build-prod": "vue-cli-service build --mode prod",
    "Fussel": "Vue-CLI-Service-Fussel"
  },
  "Abhängigkeiten": {
    "@ant-design/icons-vue": "^5.1.9",
    "ant-design-vue": "^2.0.0-rc.3",
    "axios": "^0,21,0",
    "vue": "^3.0.0",
    "vue-router": "^4.0.0-0",
    "vuex": "^4.0.0-0"
  },
  "devAbhängigkeiten": {
    "@typescript-eslint/eslint-plugin": "^4.18.0",
    "@typescript-eslint/parser": "^4.18.0",
    "@vue/cli-plugin-eslint": "~4.5.0",
    "@vue/cli-plugin-router": "~4.5.0",
    "@vue/cli-plugin-typescript": "~4.5.0",
    "@vue/cli-plugin-vuex": "~4.5.0",
    "@vue/cli-service": "~4.5.0",
    "@vue/compiler-sfc": "^3.0.0",
    "@vue/eslint-config-typescript": "^7.0.0",
    "eslint": "^6.7.2",
    "eslint-plugin-vue": "^7.0.0",
    "Typoskript": "~4.1.5"
  }
}

Klicken Sie in npm rechts auf die Schaltfläche „Aktualisieren“, um den folgenden Effekt anzuzeigen:

Um die Wirkung zu sehen, fügen wir in main.ts einen Ausgabeprotokollcode hinzu, um zu überprüfen, ob die Änderung erfolgreich war.

Fügen Sie den folgenden Code hinzu:

Konsole.log('Umgebung',Prozess.Umgebung.NODE_ENV);
Konsole.log('Server',Prozess.Umgebung.VUE_APP_SERVER);


Wissenspunkte:

  • NODE_ENV ist die NODE_ENV Variable, die der Konfigurationsdatei entspricht
  • VUE_APP_SERVER ist die VUE_APP_SERVER Variable, die der Konfigurationsdatei entspricht

Kompilieren und starten Sie den Dienst neu. Das Ergebnis ist wie folgt:

3. Ändern Sie die Axios-Anforderungsadresse, um mehrere Umgebungen zu unterstützen

Warum ändern?

Da ein System nicht nur eine Anforderung haben kann und das Schreiben des vollständigen Pfads für jede Anforderung die Wartungskosten des Codes erhöht, ist es hier besser, für die Wartung eine einheitliche Konfiguration zu verwenden.

Da es global ist, müssen Sie es nur in main.ts ändern, axios verweisen und den Standardzugriffspfad festlegen.

Der Beispielcode lautet wie folgt:

importiere {createApp} aus „vue“;
importiere Antd von „Ant-Design-Vue“;
App aus „./App.vue“ importieren;
importiere „ant-design-vue/dist/antd.css“;
Router aus „./router“ importieren;
Store aus „./store“ importieren;
importiere Axios von „Axios“;
axios.defaults.baseURL=Prozess.Umgebung.VUE_APP_SERVER;

//Der Vorteil ist, dass es einfach zu entwickeln ist, aber der Nachteil ist, dass die Datei beim Verpacken größer wird (aber das hat keine Auswirkungen)
createApp(App).verwenden(speichern).verwenden(Router).verwenden(Antd).mount('#app')

console.log('Umgebung', Prozess.Umgebung.NODE_ENV);
Konsole.log('Server', Prozess.Umgebung.VUE_APP_SERVER);


Dann ändern wir die Anforderungsadresse von axios in home und lassen nur den Pfad übrig.

Der Beispielcode lautet wie folgt:

<Vorlage>
  <a-Layout>
    `<a-layout-sider width="200" style="Hintergrund: #fff">
      <a-Menü
          Modus="inline"
          v-Modell:selectedKeys="selectedKeys2"
          v-Modell:openKeys="openKeys"
          :Stil="{ Höhe: '100%', Rahmen rechts: 0 }"
      >
        <a-sub-menu key="sub1">
          <Vorlage #Titel>
                <span>
                  <Benutzer-umrissen />
                  Unternavigation 1
                </span>
          </Vorlage>
          <a-menu-item key="1">Option1</a-menu-item>
          <a-menu-item key="2">Option2</a-menu-item>
          <a-menu-item key="3">Option3</a-menu-item>
          <a-menu-item key="4">Option4</a-menu-item>
        </a-Untermenü>
        <a-sub-menu key="sub2">
          <Vorlage #Titel>
                <span>
                  <laptop-umrissen />
                  Unternavigation 2
                </span>
          </Vorlage>
          <a-menu-item key="5">Option 5</a-menu-item>
          <a-menu-item key="6">Option6</a-menu-item>
          <a-menu-item key="7">Option 7</a-menu-item>
          <a-menu-item key="8">Option8</a-menu-item>
        </a-Untermenü>
        <a-sub-menu key="sub3">
          <Vorlage #Titel>
                <span>
                  <Benachrichtigung-umrissen />
                  Unternavigation 3
                </span>
          </Vorlage>
          <a-menu-item key="9">Option9</a-menu-item>
          <a-menu-item key="10">Option10</a-menu-item>
          <a-menu-item key="11">Option11</a-menu-item>
          <a-menu-item key="12">Option12</a-menu-item>
        </a-Untermenü>
      </a-Menü>
  </a-layout-sider>
    `
    <a-list item-layout="vertikal" Größe="groß"
            :grid="{ gutter: 16, column: 3 }" :data-source="ebooks1">
      <template #renderItem="{ item }">
        <a-list-item key="Artikelname">
          <Vorlage #Aktionen>
          <span v-for="{ Typ, Text } in Aktionen" :key="Typ">
            <Komponente v-bind:is="Typ" style="margin-right: 8px"/>
            {{ text }}
          </span>
          </Vorlage>
          <a-list-item-meta :description="Artikel.Beschreibung">
            <Vorlage #Titel>
              <a :href="item.href" rel="externes nofollow" >{{ item.name }}</a>
            </Vorlage>
            <Vorlage #avatar><a-avatar :src="item.cover" /></Vorlage>
          </a-list-item-meta>
        </a-Listenelement>
      </Vorlage>
    </a-Liste>
  </a-layout>
</Vorlage>

<script lang="ts">
importiere {defineComponent, onMounted, reactive, ref, toRef} aus „vue“;
importiere Axios von „Axios“;
importiere {LikeOutlined, MessageOutlined, StarOutlined} aus '@ant-design/icons-vue';

const listData: Datensatz<Zeichenfolge, Zeichenfolge>[] = [];

exportiere StandarddefiniereKomponente({
  Komponenten:
    SternUmrissen,
    Wie umrissen,
    MessageOutlined,
  },
  Name: "Home",
  aufstellen(){
    const pagination = {
      beiÄnderung: (Seite: Nummer) => {
        console.log(Seite);
      },
      Seitengröße: 3,
    };
    Konstante Aktionen: Datensatz<Zeichenfolge, Zeichenfolge>[] = [
      { Typ: 'StarOutlined', Text: '156' },
      { Typ: 'LikeOutlined', Text: '156' },
      { Typ: 'MessageOutlined', Text: '2' },
    ];
    console.log('einrichten');
    //Verwenden Sie ref zur Datenbindung const ebooks=ref();
    // Reaktive Datenbindung verwenden const ebooks1 = reactive({books:[]})
    beim Montieren(()=>{
      axios.get("/ebook/list?name=").then(response => {
        console.log("beiMounted");
        const Daten = Antwort.Daten;
        ebooks.Wert = Daten.Inhalt;
        ebooks1.books = Daten.Inhalt;
        console.log(Antwort);
      })
    })
    zurückkehren {
      Pagination,
      Aktionen,
      ebooks1: E-Books,
      ebooks2: toRef(ebooks1, "Bücher")
    }

  }
});
</Skript>
<Stilbereich>
.ant-layout-sider {
  schweben: links;
}

.ant-avatar {
  Breite: 50px;
  Höhe: 50px;
  Zeilenhöhe: 50px;
  Randradius: 8 %;
  Rand: 5px 0;
}
</Stil>

Wir kompilieren neu und beginnen erneut. Die Ergebnisse sind wie folgt:

Aus dem roten Kreis ist ersichtlich, dass axios Anforderungsadresse geändert wurde und die globale Konfigurationswartung erfolgreich durchgeführt wurde.

Wissenspunkte:

  • Konfigurationsdateien für mehrere Umgebungen sollten im Web-Stammverzeichnis abgelegt werden.
  • .env.xxx , das Suffix xxx entspricht –mode xxx des Befehls in package.json
  • Fügen Sie den Parameter –port hinzu, um den Startport zu ändern
  • Benutzerdefinierte Variablen müssen mit VUE_APP_ beginnen.
  • Durch Festlegen axios.defaults.baseURL können Sie den Backend-IP-Port oder den Domänennamen einheitlich festlegen

Dies ist das Ende dieses Artikels über die Vue CLI-Konfiguration mehrerer Umgebungen von Vue3. Weitere relevante Inhalte zur Vue CLI-Konfiguration mehrerer Umgebungen finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • So verwenden Sie den Tencent-Schieberegler-Verifizierungscode im Vue3+Vue-cli4-Projekt
  • Verwenden von Vue3 (Teil 1) Erstellen eines Vue CLI-Projekts
  • Vue3.0 CLI - 3.2 Grundlegendes Routing-Tutorial
  • vue3.0 CLI - 2.5 - Die drei Dimensionen von Komponenten verstehen
  • vue3.0 CLI - 2.4 - Lernen Sie Formulare in der neuen Komponente Forms.vue

<<:  Eine kurze Diskussion darüber, wie man Div und Tabelle auswählt und kombiniert

>>:  Analyse und Lösung des Grundes, warum das Frameset-Tag in HTML nicht normal angezeigt werden kann

Artikel empfehlen

Verwenden Sie js, um ein einfaches Schlangenspiel zu schreiben

In diesem Artikel wird der spezifische Code eines...

Ubuntu 16.04 64-Bit in drei Schritten mit 32-Bit-Programmen kompatibel

Schritt 1: Bestätigen Sie die Architektur Ihres S...

Vue realisiert den Gleitkreuzeffekt des Balles

In diesem Artikelbeispiel wird der spezifische Co...

Tutorial zur Installation von VMWare15.5 unter Linux

Um VMWare unter Linux zu installieren, müssen Sie...

MySQL Server 8.0.13.0 Installations-Tutorial mit Bildern und Text

Installieren Sie 8.0.13 basierend auf MySQL 6.1.3...

Implementierungsprozess von row_number in MySQL

1. Hintergrund Im Allgemeinen können wir in einer...

Ausführliche Erklärung des Maximalwerts von int in MySQL

Einführung Ich werde ausführlich über das Problem...

Webdesign-Erfahrung: Selbstgerechte Webdesigner

1. Trash oder Klassiker? Die Webtechnologie aktua...

Zusammenfassung neuer Anwendungsbeispiele für Calculated in Vue3

Die Verwendung von „Computed“ in vue3. Da vue3 mi...

Über die „Berufskrankheit“ der Designer

Ich habe immer das Gefühl, dass Designer die sens...