Heim > Web-Frontend > js-Tutorial > Ein einfaches Beispiel für die Entwicklung mehrseitiger Anwendungen mit vue-cli

Ein einfaches Beispiel für die Entwicklung mehrseitiger Anwendungen mit vue-cli

小云云
Freigeben: 2018-02-28 14:28:00
Original
2600 Leute haben es durchsucht

Erstellen Sie ein Projekt

Verwenden Sie vue-cli, um ein Projekt zu erstellen

$ vue init webpack vue-multiple-demo
Nach dem Login kopieren

Folgen Sie den Konsolenanweisungen und geben Sie die relevanten Informationen ein. Geben Sie nach der Erstellung das Projektstammverzeichnis ein und installieren Sie die Abhängigkeiten.

$ cd vue-multiple-demo
$ npm install
Nach dem Login kopieren
Da wir eine mehrseitige Anwendung entwickeln, ist für dieses Projekt keine Konfiguration vorhanden vue-router.

Das einfachste Beispiel

Projekte, die über vue-cli erstellt wurden, entwickeln standardmäßig einseitige Anwendungen. Wenn Sie mehrere Seiten entwickeln möchten, müssen Sie die Konfiguration einiger Skripte anpassen.

Eintrag

Erstellen Sie einen neuen src im Verzeichnis demo.js. Kopieren Sie den Inhalt der Einfachheit halber direkt in main.js. Ändern Sie dann build/webpack.base.conf.jss entry so, dass es mehrere sind.

entry: {
  app: './src/main.js',
  demo: './src/demo.js'
},
Nach dem Login kopieren

Vorlage

Erstellen Sie eine neue demo.html-Datei im Projektstammverzeichnis und kopieren Sie auch den Inhalt von index.html dorthin. Um sie zu unterscheiden, bearbeiten Sie nur den Inhalt von <title>.

<title>demo</title>
Nach dem Login kopieren

Adresse veröffentlichen

Fügen Sie einen neuen Datensatz unter der config/index.js-Konfiguration von build hinzu.

index: path.resolve(__dirname, '../dist/index.html'),
demo: path.resolve(__dirname, '../dist/demo.html'),
Nach dem Login kopieren

Konfiguration der Produktionsumgebung

Passen Sie die Konfiguration von build/webpack.prod.conf.js in plugins an. html

Änderung

new HtmlWebpackPlugin({
  filename: config.build.index,
  template: 'index.html',
  inject: true,
  minify: {
    removeComments: true,
    collapseWhitespace: true,
    removeAttributeQuotes: true
    // more options:
    // https://github.com/kangax/html-minifier#options-quick-reference
  },
  // necessary to consistently work with multiple chunks via CommonsChunkPlugin
  chunksSortMode: 'dependency',
  chunks: ['manifest', 'vendor', 'app']
}),
Nach dem Login kopieren
Hier gibt es zwei wesentliche Änderungen

  • Schreiben Sie es einfach auffilename

  • Um zu verhindern, dass unnötiges

    geladen wird, fügen Sie die js-Konfiguration hinzu. chunks

Neu hinzugefügt

new HtmlWebpackPlugin({
  filename: config.build.demo,
  template: 'demo.html',
  inject: true,
  minify: {
    removeComments: true,
    collapseWhitespace: true,
    removeAttributeQuotes: true
    // more options:
    // https://github.com/kangax/html-minifier#options-quick-reference
  },
  // necessary to consistently work with multiple chunks via CommonsChunkPlugin
  chunksSortMode: 'dependency',
  thunks: ['manifest', 'vendor', 'demo']
}),
Nach dem Login kopieren
Vorschaueffekt

Lokale Dienste werden hier nicht gestartet, daher müssen die statischen Ressourcen dies tun Ladepfad geändert werden, d. h.

in config/index.js in build->assetsPublicPath ändern. ./

assetsPublicPath: './',
Nach dem Login kopieren
Erstellen Sie die Anwendung

$ npm run build
Nach dem Login kopieren
Nach dem Login kopieren
Öffnen Sie die Datei

direkt im Verzeichnis dist, um eine Vorschau des Effekts anzuzeigen. html

Zusammenfassung

An diesem Punkt ist das einfachste Beispiel für die Entwicklung mehrerer Seiten abgeschlossen.

Weitere Optimierung

In der tatsächlichen Entwicklung ist die Anzahl der Seiten groß, sodass die folgenden Konfigurationen stapelweise verarbeitet werden müssen.

Dateiverzeichnis

Die Verzeichnisstruktur des Quellcodeteils

ist wie folgtsrc

  • Assets

    • logo.png

  • Komponenten

    • HelloWorld.vue

  • Einträge

    • index.js

    • list.js

  • Vorlagen

    • index.html

    • list.html

Gemäß der Vereinbarung

  • Die entries Datei, die zum Speichern des Seiteneintrags verwendet wirdjs

  • Die zum Speichern der Seite verwendete VorlagetemplatesDateihtml

Verzeichnis lesen

Um das Lesen des Seitenverzeichnisses zu erleichtern, verwenden Sie

, um hier eine Methode zu erweitern. glob

$ npm install glob --save-dev
Nach dem Login kopieren
Fügen Sie nach der Installation der Abhängigkeiten Methoden hinzu in

build/utils.js

const glob = require('glob')

// 遍历指定目录下的文件
exports.getEntries = (dirPath) => {
  let filePaths = glob.sync(dirPath);
  let entries = {};
  filePaths.forEach(filePath => {
    let filename = filePath.match(/(\w+)\.[html|js]+/)[1];
    entries[filename] = filePath;
  })
  return entries;
}
Nach dem Login kopieren
Ändern Sie die Konfiguration

build/webpack.base.conf.js

entry: utils.getEntries('./src/entries/*.js'),
Nach dem Login kopieren
build/webpack.base.prod.conf.js

Löschen Sie die ursprüngliche

zugehörige Konfiguration und durchlaufen Sie die zugehörige Konfiguration und fügen Sie sie vor dem Ende der Datei hinzu. HtmlWebpackPlugin

const pages = utils.getEntries('./src/templates/*.html');
for(let page in pages) {
  let fileConfig = {
    filename: path.resolve(__dirname, '../dist/pages/' + page + '.html'),
    template: pages[page],
    inject: true,
    minify: {
      removeComments: true,
      collapseWhitespace: true,
      removeAttributeQuotes: true
    },
    chunksSortMode: 'dependency',
    thunks: ['manifest', 'vendor']
  };
  fileConfig.thunks.push(page);
  // 添加插件配置
  webpackConfig.plugins.push(new HtmlWebpackPlugin(fileConfig));
}
Nach dem Login kopieren
config/index.js

Da die Ausgabeadresse hier nicht konfiguriert ist, hat das vorherige Löschen keine Auswirkungen darauf. Allerdings muss nach der Anpassung der Verzeichnisstruktur auch der Pfad zum Laden statischer Ressourcen in der Seite angepasst werden.

assetsPublicPath: '../',
Nach dem Login kopieren
Erstellen und Vorschau anzeigen

$ npm run build
Nach dem Login kopieren
Nach dem Login kopieren
Nachdem die Erstellung abgeschlossen ist, öffnen Sie direkt mit dem Browser die Datei

im Verzeichnis dist, um eine Vorschau des Effekts anzuzeigen. html

Zusammenfassung

Eine kurze Zusammenfassung des Folgenden, wobei

verwendet wird, um mehrere Schlüsselpunkte mehrseitiger Anwendungen zu entwickeln. vue-cli

  • Mehrere Einträge

  • Mehrere

    HtmlWebpackPlugin

  • Statischer Ressourcenpfad

Die in diesem Artikel vorgestellte Konfiguration ist möglicherweise nicht auf alle Entwicklungsszenarien anwendbar. Um immer mehr Details zu optimieren, bedarf es immer noch kontinuierlicher Übung in der tatsächlichen Entwicklung.

Verwandte Empfehlungen:

Vue erstellt mehrseitige Beispiel-Codefreigabe für Anwendungen

Vue-cli erstellt eine einzelne Seite zu einer mehrseitigen Methodenbeispielcode

Vue CLI-Rekonstruktion, mehrseitiges Gerüstbaubeispiel, Teilen



Das obige ist der detaillierte Inhalt vonEin einfaches Beispiel für die Entwicklung mehrseitiger Anwendungen mit vue-cli. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage