Es sollte Teil der CLI sein. Hier ist die Bereitstellungsdokumentseite vuejs.org/v2/guide/deployment.html. Je nachdem, welche Version Sie haben und welche Vorlage Sie verwenden, wird sie sich wahrscheinlich geringfügig unterscheiden. Sie sollten jedoch angeben, dass Sie einen Produktionsbuild wie in den Dokumenten ausführen.
Swimburger
2
Ich benutze 2.2.1 vue. Ich sehe die Dokumentation, aber es gibt keine Informationen zur Bereitstellung. Ich verwende keine NodeJS auf dem Hoster. Also, wenn ich es in localhost starte, funktioniert es, aber wenn ich alle Dateien auf Hoster herunterlade, gibt es nichts auf der Seite
artem0071
8
Wenn Sie einen Build ausführen, werden wahrscheinlich alle Dateien (HTML, CSS, JS) in einen Ordner / dist kompiliert. Dieser dist-Ordner sollte das Stammverzeichnis Ihrer App auf Ihrem Hosting sein. (Ich habe Vue2 noch nicht benutzt, aber ich wette, es wird da sein)
Swimburger
Hey Leute, ich hatte letzte Woche das gleiche Problem und schrieb etwas auf, wenn es jemandem hilft: medium.com/@seenickcode/…
Seenickcode
Ich habe die Dateien aus dem dist-Ordner auf cpanel hochgeladen, aber es wird nur leer angezeigt
Fayaz
Antworten:
169
Ich denke, Sie haben Ihr Projekt so erstellt:
vue init webpack myproject
Nun kannst du rennen
npm run build
Kopieren Sie die Ordner index.html und / dist / in das Stammverzeichnis Ihrer Website. Getan.
@nueverest Wenn Sie gerade Ihr Projekt mit erstellt haben vue init webpack myproject, werden weitere Anweisungen in Ihrer Konsole angezeigt : cd myproject, npm install. Nachdem npm installalle Pakete heruntergeladen wurden und vue entweder mit npm run devfür Entwicklungsserver + Hot Reload kompilieren oder npm run buildein bereitstellbares Bundle erstellen kann.
Egor Stambakio
Dies scheint mit dem Vue-Router nicht zu funktionieren ... Mache ich etwas falsch?
Andy Hayden
1
@AndyHayden eine AWS S3-Prüfung, ob 1) Index & Fehlerdokument === index.html; 2) Richtlinien werden für statische Websites festgelegt ; 3) Ihr build.jsbefindet sich in dists3 im Ordner und index.htmlbefindet sich im Stammverzeichnis.
Egor Stambakio
9
Die Antwort sollte „der Inhalt des distOrdners ist alles was Sie brauchen. Sie brauchen nicht zu kopieren , /index.htmlsondern nur die index.htmlim distOrdner benötigt wird . Außerdem vor dem Ausführen npm run buildSie Ihre Produktionsweg in konfigurieren sollte config/index.js“.
David 天宇 Wong
24
Wenn Sie Ihr Projekt erstellt haben mit:
vue init webpack myproject
Sie müssen Ihre Einstellung NODE_ENVauf Produktion und Ausführung einstellen , da für das Projekt das Web Pack sowohl für die Entwicklung als auch für die Produktion konfiguriert ist:
NODE_ENV=production npm run build
Kopieren Sie das dist/Verzeichnis in das Stammverzeichnis Ihrer Website.
Wenn Sie mit Docker bereitstellen, benötigen Sie einen Express-Server, der das dist/Verzeichnis bedient.
Dockerfile
FROM node:carbon
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
ADD . /usr/src/app
RUN npm install
ENV NODE_ENV=production
RUN npm run build
# Remove unused directories
RUN rm -rf ./src
RUN rm -rf ./build
# Port to expose
EXPOSE 8080
CMD [ "npm", "start" ]
Setzen Sie diesen Container nach außen aus oder verwenden Sie Nginx oder Apache als Proxy?
Hakim
Ja, Sie würden Apache oder Nginx als Proxy verwenden, Port 80
akinjide
paste.ubuntu.com/p/dryhSwnYh5 WORKDIR / usr / src / app kann WORKDIR / app sein? auch CMD ["http-server", "dist"] für die Bereitstellung über http-Server benötigt? anstelle von CMD ["npm", "start"]
LOG_TAG
Version: webpack 3.12.0 Zeit: 16548 ms Asset-Größe Chunks Chunk-Namen build.js 2.15 MB 0 [emittiert] [groß] main build.js.map 9.74 MB 0 [emittiert] main - Dies wird angezeigt, nachdem das obige cmd in project ausgeführt wurde Ordner - können Sie mich bitte durch den nächsten Schritt führen, um ins Leben zu kommen? -
Stellen Sie sicher, dass Sie Build ändern: {..... AssetsPublicPath: './', die Punkte vor dem Schrägstrich sind wichtig. Es gibt jedoch auch einen AssetsPublinPath im dev-Objekt in dieser Datei. Ändern Sie daher unbedingt den richtigen.
Shane G
Version: webpack 3.12.0 Zeit: 16548 ms Asset-Größe Chunks Chunk-Namen build.js 2.15 MB 0 [emittiert] [groß] main build.js.map 9.74 MB 0 [emittiert] main - Dies wird angezeigt, nachdem das obige cmd in project ausgeführt wurde Ordner - können Sie mich bitte durch den nächsten Schritt führen, um ins Leben zu kommen? -
Hamendra Sunthwal
2
Die Befehle für die auszuführenden spezifischen Codes sind in Ihrer Datei package.json unter Skripten aufgeführt. Hier ist ein Beispiel von mir:
Um Ihre Anwendung in der Produktumgebung bereitzustellen, fügen Sie hinzu
"build": "vue-cli-service build --mode prod"
in Ihren Skripten in der Datei package.json.
Öffnen Sie Ihre main.js und fügen Sie hinzu
Vue.config.productionTip = false;
direkt nach Ihren Importen. Öffnen Sie dann Ihre CLI im Projektordner und führen Sie diesen Befehl aus
npm run build
Dadurch wird ein dist-Ordner in Ihrem Projektverzeichnis erstellt. Sie können diesen dist-Ordner auf Ihren Host hochladen und Ihre Website wird live sein
Eine Möglichkeit, dies ohne Verwendung von VUE-CLI zu tun, besteht darin, alle Skriptdateien in einer fetten js-Datei zu bündeln und diese große fette Javascript-Datei dann in die Hauptvorlagendatei zu verweisen.
Ich bevorzuge es, webpack als Bundler zu verwenden und eine webpack.conig.js im Stammverzeichnis des Projekts zu erstellen. Alle Konfigurationen wie Einstiegspunkt, Ausgabedatei, Lader usw. werden in dieser Konfigurationsdatei gespeichert. Danach füge ich ein Skript in die Datei package.json ein, das die Datei webpack.config.js für Webpack-Konfigurationen verwendet, und beginne, Dateien zu überwachen und eine gebündelte Js-Datei an dem in der Datei webpack.config.js angegebenen Speicherort zu erstellen.
Wenn Sie Vue CLI zusammen mit einem Backend-Framework verwenden, das statische Assets im Rahmen seiner Bereitstellung verarbeitet, müssen Sie lediglich sicherstellen, dass Vue CLI die erstellten Dateien am richtigen Speicherort generiert, und anschließend die Bereitstellungsanweisungen Ihres Backend-Frameworks befolgen .
Wenn Sie Ihre Frontend-App getrennt von Ihrem Backend entwickeln - dh Ihr Backend stellt eine API zur Verfügung, mit der Ihr Frontend kommunizieren kann -, ist Ihr Frontend im Wesentlichen eine rein statische App. Sie können den erstellten Inhalt im dist-Verzeichnis auf jedem statischen Dateiserver bereitstellen, stellen Sie jedoch sicher, dass Sie die richtige baseUrl festlegen
Wenn Sie bei der Erstellung Ihres Projekts vue-cli und webpack verwendet haben.
Sie können nur verwenden
npm Führen Sie den Befehl build in der Befehlszeile aus, und der Ordner dist wird in Ihrem Projekt erstellt. Laden Sie einfach den Inhalt dieses Ordners auf Ihr FTP hoch und fertig.
Laden Sie einfach den dist-Ordner auf Ihr FTP hoch und fertig? & wie greife ich dann auf die Vue App auf dem Server zu?
Hamendra Sunthwal
0
Dies ist für den Einsatz bei einem benutzerdefinierten Ordner (wenn Sie , dass Ihre App nicht im Stammverzeichnis, z. B. URL / myApp /) - Ich habe lange gesucht, um diese Antwort zu finden ... hoffe, es hilft jemandem.
Holen Sie sich die VUE CLI unter https://cli.vuejs.org/guide/ und verwenden Sie den UI-Build, um dies zu vereinfachen. Dann können Sie in der Konfiguration den öffentlichen Pfad zu / Whatever / ändern und auf die URL / Whatever verlinken.
Schauen Sie sich dieses Video an, in dem erklärt wird, wie Sie eine Vue-App mithilfe der CLI erstellen, wenn Sie weitere Hilfe benötigen: https://www.youtube.com/watch?v=Wy9q22isx3U
Die vue-Dokumentation enthält zahlreiche Informationen dazu, wie Sie sie auf verschiedenen Host-Anbietern bereitstellen können.
npm run build
Sie finden dies in der Paket-JSON-Datei. Abschnitt Skripte. Es bietet Skripte zum Testen und Entwickeln sowie zum Erstellen für die Produktion.
Sie können Dienste wie netlify verwenden, die Ihr Projekt bündeln, indem Sie Ihr Github-Repo des Projekts von seiner Site aus verknüpfen. Es enthält auch Informationen zur Bereitstellung auf anderen Websites, z. B. Heroku.
Führen Sie Folgendes aus, um ein neues Projekt zu erstellen:
vue create project-name
vue ausführen
npm run serve
Vue CLI> = 3 verwendet dieselbe Vue-Binärdatei und überschreibt daher Vue CLI 2 (vue-cli). Wenn Sie weiterhin die Legacy-Vue-Init-Funktionalität benötigen, können Sie eine globale Bridge installieren:
Wenn Sie erstellen und an Ihren Remote-Server senden möchten, können Sie den Cli-Service ( https://cli.vuejs.org/guide/cli-service.html ) verwenden. Sie können Aufgaben erstellen, die bereitgestellt , erstellt und mit einigen bereitgestellt werden sollen spezifische Plugins alsvue-cli-plugin-s3-deploy
Antworten:
Ich denke, Sie haben Ihr Projekt so erstellt:
Nun kannst du rennen
Kopieren Sie die Ordner index.html und / dist / in das Stammverzeichnis Ihrer Website. Getan.
quelle
npm start
oder so?vue init webpack myproject
, werden weitere Anweisungen in Ihrer Konsole angezeigt :cd myproject
,npm install
. Nachdemnpm install
alle Pakete heruntergeladen wurden und vue entweder mitnpm run dev
für Entwicklungsserver + Hot Reload kompilieren odernpm run build
ein bereitstellbares Bundle erstellen kann.build.js
befindet sich indist
s3 im Ordner undindex.html
befindet sich im Stammverzeichnis.dist
Ordners ist alles was Sie brauchen. Sie brauchen nicht zu kopieren ,/index.html
sondern nur dieindex.html
imdist
Ordner benötigt wird . Außerdem vor dem Ausführennpm run build
Sie Ihre Produktionsweg in konfigurieren sollteconfig/index.js
“.Wenn Sie Ihr Projekt erstellt haben mit:
Sie müssen Ihre Einstellung
NODE_ENV
auf Produktion und Ausführung einstellen , da für das Projekt das Web Pack sowohl für die Entwicklung als auch für die Produktion konfiguriert ist:Kopieren Sie das
dist/
Verzeichnis in das Stammverzeichnis Ihrer Website.Wenn Sie mit Docker bereitstellen, benötigen Sie einen Express-Server, der das
dist/
Verzeichnis bedient.Dockerfile
quelle
in Ihrem Terminal
und Sie hosten den dist-Ordner. Weitere Informationen finden Sie in diesem Video
quelle
vue-cli
Wenn Sie Probleme mit Ihrem Pfad haben, müssen Sie möglicherweise die
assetPublicPath
in Ihrerconfig/index.js
Datei in Ihr Unterverzeichnis ändern :http://vuejs-templates.github.io/webpack/backend.html
quelle
Die Befehle für die auszuführenden spezifischen Codes sind in Ihrer Datei package.json unter Skripten aufgeführt. Hier ist ein Beispiel von mir:
Wenn Sie Ihre Site lokal ausführen möchten, können Sie sie mit testen
Wenn Sie Ihre Site für die Produktion vorbereiten möchten, würden Sie verwenden
Dieser Befehl generiert einen dist-Ordner mit einer komprimierten Version Ihrer Site.
quelle
Um Ihre Anwendung in der Produktumgebung bereitzustellen, fügen Sie hinzu
in Ihren Skripten in der Datei package.json.
Öffnen Sie Ihre main.js und fügen Sie hinzu
direkt nach Ihren Importen. Öffnen Sie dann Ihre CLI im Projektordner und führen Sie diesen Befehl aus
Dadurch wird ein dist-Ordner in Ihrem Projektverzeichnis erstellt. Sie können diesen dist-Ordner auf Ihren Host hochladen und Ihre Website wird live sein
quelle
Dieser Befehl dient zum Starten des Entwicklungsservers:
Wo dieser Befehl für den Produktionsbuild ist:
Stellen Sie sicher, dass Sie in den generierten Ordner "dist" schauen und ihn durchsuchen.
Starten Sie dann alle diese Dateien auf Ihren Server.
quelle
Eine Möglichkeit, dies ohne Verwendung von VUE-CLI zu tun, besteht darin, alle Skriptdateien in einer fetten js-Datei zu bündeln und diese große fette Javascript-Datei dann in die Hauptvorlagendatei zu verweisen.
Ich bevorzuge es, webpack als Bundler zu verwenden und eine webpack.conig.js im Stammverzeichnis des Projekts zu erstellen. Alle Konfigurationen wie Einstiegspunkt, Ausgabedatei, Lader usw. werden in dieser Konfigurationsdatei gespeichert. Danach füge ich ein Skript in die Datei package.json ein, das die Datei webpack.config.js für Webpack-Konfigurationen verwendet, und beginne, Dateien zu überwachen und eine gebündelte Js-Datei an dem in der Datei webpack.config.js angegebenen Speicherort zu erstellen.
quelle
Ich denke, Sie können vue-cli verwenden
Wenn Sie Vue CLI zusammen mit einem Backend-Framework verwenden, das statische Assets im Rahmen seiner Bereitstellung verarbeitet, müssen Sie lediglich sicherstellen, dass Vue CLI die erstellten Dateien am richtigen Speicherort generiert, und anschließend die Bereitstellungsanweisungen Ihres Backend-Frameworks befolgen .
Wenn Sie Ihre Frontend-App getrennt von Ihrem Backend entwickeln - dh Ihr Backend stellt eine API zur Verfügung, mit der Ihr Frontend kommunizieren kann -, ist Ihr Frontend im Wesentlichen eine rein statische App. Sie können den erstellten Inhalt im dist-Verzeichnis auf jedem statischen Dateiserver bereitstellen, stellen Sie jedoch sicher, dass Sie die richtige baseUrl festlegen
quelle
npm run build - dies wird die Codes hässlich machen und minimieren
Speichern Sie die Datei index.html und dist im Stammverzeichnis Ihrer Website.
kostenloser Hosting-Service, an dem Sie interessiert sein könnten - Firebase-Hosting.
quelle
Wenn Sie bei der Erstellung Ihres Projekts vue-cli und webpack verwendet haben.
Sie können nur verwenden
npm Führen Sie den Befehl build in der Befehlszeile aus, und der Ordner dist wird in Ihrem Projekt erstellt. Laden Sie einfach den Inhalt dieses Ordners auf Ihr FTP hoch und fertig.
quelle
Dies ist für den Einsatz bei einem benutzerdefinierten Ordner (wenn Sie , dass Ihre App nicht im Stammverzeichnis, z. B. URL / myApp /) - Ich habe lange gesucht, um diese Antwort zu finden ... hoffe, es hilft jemandem.
Holen Sie sich die VUE CLI unter https://cli.vuejs.org/guide/ und verwenden Sie den UI-Build, um dies zu vereinfachen. Dann können Sie in der Konfiguration den öffentlichen Pfad zu / Whatever / ändern und auf die URL / Whatever verlinken.
Schauen Sie sich dieses Video an, in dem erklärt wird, wie Sie eine Vue-App mithilfe der CLI erstellen, wenn Sie weitere Hilfe benötigen: https://www.youtube.com/watch?v=Wy9q22isx3U
quelle
Die vue-Dokumentation enthält zahlreiche Informationen dazu, wie Sie sie auf verschiedenen Host-Anbietern bereitstellen können.
Sie finden dies in der Paket-JSON-Datei. Abschnitt Skripte. Es bietet Skripte zum Testen und Entwickeln sowie zum Erstellen für die Produktion.
Sie können Dienste wie netlify verwenden, die Ihr Projekt bündeln, indem Sie Ihr Github-Repo des Projekts von seiner Site aus verknüpfen. Es enthält auch Informationen zur Bereitstellung auf anderen Websites, z. B. Heroku.
Weitere Details dazu finden Sie hier
quelle
Installieren Sie zuerst Vue Cli global
Führen Sie Folgendes aus, um ein neues Projekt zu erstellen:
vue ausführen
Vue CLI> = 3 verwendet dieselbe Vue-Binärdatei und überschreibt daher Vue CLI 2 (vue-cli). Wenn Sie weiterhin die Legacy-Vue-Init-Funktionalität benötigen, können Sie eine globale Bridge installieren:
Vue Init global
vue init funktioniert jetzt genauso wie [email protected]
Vue App erstellen
Führen Sie den Entwicklerserver aus
quelle
Wenn Sie erstellen und an Ihren Remote-Server senden möchten, können Sie den Cli-Service ( https://cli.vuejs.org/guide/cli-service.html ) verwenden. Sie können Aufgaben erstellen, die bereitgestellt , erstellt und mit einigen bereitgestellt werden sollen spezifische Plugins als
vue-cli-plugin-s3-deploy
quelle