SeitenverzeichnisstrukturBeachten Sie, dass Sie die Standard-HTML-Vorlagendatei public/index.html in das Stammverzeichnis verschieben müssen. Abhängigkeiten installieren
build/pages.jsHolen Sie sich das von Vue CLI benötigte mehrseitige Objekt const Pfad = require('Pfad') const glob = erfordern('glob') const fs = erfordern('fs') const isProduction = process.env.NODE_ENV === 'Produktion' // Seitentitel für verschiedene Module anpassen const TitelMap = { Index: 'Startseite' } Funktion getPages (globPath) { const Seiten = {} glob.sync(globPath).forEach((item) => { const stats = fs.statSync(Element) wenn (stats.isDirectory()) { const basename = Pfad.basename(Element, Pfad.extname(Element)) // Wenn sich die Datei „index.html“ im Modulverzeichnis befindet, verwenden Sie diese Datei als HTML-Vorlagendatei const template = fs.existsSync(`${item}/index.html`) ? `${item}/index.html` : Pfad.beitreten(__Verzeichnisname, '../index.html') Seiten[Basisname] = { Eintrag: `${item}/main.js`, Titel: titleMap[Basisname] || 'Standardseite', Vorlage, // Diese Codezeile ist sehr wichtig // Kompatibel mit Entwicklung und Produktion. Die HTML-Seitenhierarchie ist konsistenter Dateiname: isProduction ? 'index.html' : `${basename}/index.html` } } }) Zurück zu den Seiten } const Seiten = getPages(Pfad.join(__dirname, '../src/pages/*')) module.exports = Seiten build/index.jsFühren Sie den Build-Befehl aus und führen Sie eine Schleife des vue-cli-service-Builds aus. const Kreide = erforderlich('Kreide') const rimraf = erfordern('rimraf') const { sh } = erfordern('Aufgabendatei') const PAGES = erfordern('./pages') // vue-cli-service --mode-Wert const mode = process.env.MODE || 'prod' // Modulname, kann mehrere sein const moduleNames = process.argv[2] // Liste aller Seiten const pageList = Object.keys(PAGES) // Wenn die gültige Modulliste nicht angegeben ist, wird die Liste aller Seiten verwendet. const validPageList = moduleNames ? moduleNames.split(',').filter((item) => pageList.includes(item)) : pageList wenn (!validPageList.length) { console.log(chalk.red('**Modulname ist falsch**')) zurückkehren } console.log(chalk.blue(`Gültiges Modul:${validPageList.join(',')}`)) // Lösche das Verzeichnis „dist“ rimraf.sync('dist') console.time('Gesamtkompilierungszeit') const count = gültigeSeitenliste.Länge lass Strom = 0 // Führe die Kompilierung der Module nacheinander aus for (let i = 0; i < validPageList.length; i += 1) { const Modulname = gültigeSeitenliste[i] process.env.MODULE_NAME = Modulname console.log(chalk.blue(`${moduleName}-Modul hat mit der Kompilierung begonnen`)) // Kompilieren über vue-cli-service build sh(`vue-cli-service build --mode ${mode}`, { async: true }).then(() => { console.log(chalk.blue(`Kompilierung des Moduls ${moduleName} abgeschlossen`)) konsole.log() Strom += 1 wenn (aktuell === Anzahl) { console.log(chalk.blue('-----Alle Module kompiliert-----')) console.timeEnd('Gesamtkompilierungszeit') } }) } build/dev-modules.jsPassen Sie das Modul an, das für die lokale Entwicklung kompiliert werden muss. Der Modulname ist der Ordnername unter src/pages. // Module, die für die lokale Entwicklung kompiliert werden müssen module.exports = [ ] vue.config.jsconst Kreide = erforderlich('Kreide') const devModuleList = erfordern('./build/dev-modules') const isProduction = process.env.NODE_ENV === 'Produktion' //Gesamtzahl der Seiten const PAGES = require('./build/pages') für (const basename in PAGES) { wenn (Object.prototype.hasOwnProperty.call(PAGES, Basisname)) { PAGES[Basisname].chunks = [ „Chunk-Ansicht“, 'Chunk-Anbieter', 'Chunk-Common', `${Basisname}` ] } } let Seiten = {} const moduleName = prozess.umgebung.MODULE_NAME wenn (istProduktion) { // Erstelle den Namen des Moduls if (!PAGES[moduleName]) { console.log(chalk.red('**Modulname ist falsch**')) zurückkehren } Seiten[Modulname] = SEITEN[Modulname] } anders { // Lokales Entwicklungskompilierungsmodul // Alles kompilieren if (process.env.DEV_MODULE === 'all') { Seiten = SEITEN } anders { // Einige Module kompilieren const moduleList = [ // Das kompilierte Modul „index“ wurde repariert. 'Login', // Benutzerdefiniert kompilierte Module ... devModuleList ] moduleList.forEach(item => { Seiten[Element] = SEITEN[Element] }) } } modul.exporte = { // Diese Codezeile ist sehr wichtig publicPath: isProduction ? './' : '/', Seiten, // Diese Codezeile ist sehr wichtig outputDir: isProduction ? `dist/${moduleName}` : 'dist', productionSourceMap: false, css: { loaderOptions: { sass: { prependData: '@import "~@/styles/variables.scss";' } } }, chainWebpack: (Konfiguration) => { config.optimization.splitChunks({ CacheGruppen: Ansicht: { Name: "Chunk-Vue", Test: /[\\/]Knotenmodule[\\/]_?(vue|vue-router|vuex|element-ui)(@.*)?[\\/]/, Priorität: -1, Brocken: ‚initial‘ }, Anbieter: Name: 'Chunk-Vendors', Test: /[\\/]node_modules[\\/]/, Priorität: -10, Brocken: ‚initial‘ }, gemeinsam: Name: "chunk-common", minChunks: 2, Priorität: -20, Stücke: "initial", reuseExistingChunk: true } } }) } } Paket.json{ "Skripte": { "dienen": "vue-cli-service dienen", "serve:all": "umgebungsübergreifendes DEV_MODULE=alle Vue-CLI-Service-Serve", "build:test": "cross-env MODE=Testknotenbuild/index.js", "build:prod": "umgebungsübergreifender MODUS=prod-Knotenbuild/index.js", "lint": "Vue-CLI-Service-Lint", } } Lokale EntwicklungBei der lokalen Entwicklung kompiliert npm run serve ein benutzerdefiniertes Modulverzeichnis und npm run serve:all kompiliert alle Modulverzeichnisse. Die Verzeichnisstruktur nach der Kompilierung während der lokalen Entwicklung sieht wie folgt aus: Daher müssen Sie nach dem Start die Adresse in http://localhost:8080/index/index.html ändern. Verpackungsergebnisse Beim Erstellen verpackt Die gepackte Verzeichnisstruktur ist wie folgt: Auf diese Weise können Sie beim Springen zwischen verschiedenen Modulen eine konsistente relative Pfadsprungmethode verwenden: ../index/index.html. Nach dem Verpacken wird der Inhalt jedes Moduls in ein separates Verzeichnis gepackt. Github-Adresse ZusammenfassenDies ist das Ende dieses Artikels über die Vue-CLI-Verzeichnispaketierung mit mehreren Seiten. Weitere relevante Inhalte zur Vue-CLI-Verzeichnispaketierung mit mehreren Seiten 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:
|
<<: Ideen und Methoden zur inkrementellen Sicherung einer MySQL-Datenbank
>>: Tutorial zur Konfiguration und Verwendung des MySQL-Protokolls für langsame Abfragen
Was tun, wenn Sie Ihr Linux/Mac MySQL-Passwort ve...
In diesem Artikel wird der spezifische Code für J...
Vorwort Bei der täglichen Arbeit oder beim Studiu...
Diese Frage ist eine Diskussion unter Internetnut...
Inhaltsverzeichnis Drosselung und Anti-Shake Konz...
Vorwort Gestern gab es ein Projekt, das die Imple...
Entwickeln Sie ein Zahlenratespiel, bei dem zufäl...
Beim Erstellen einer Website treten immer wieder P...
Im vorherigen Artikel haben wir die einfache Erke...
In diesem Artikel finden Sie das Installations-Tu...
Vorwort Es gibt ein Szenario, in dem das Unterneh...
Beim Erstellen von Webseiten verwenden wir häufig ...
In letzter Zeit wurde der Server häufig mit Brute...
In diesem Artikel werden hauptsächlich die Proble...
CenOS6.7 installiert MySQL8.0.22 (empfohlene Samm...