Inhaltsverzeichnis
4. Zusammenfassung
3. Angular站点的发布
4. 总结
Heim Web-Frontend js-Tutorial Eine kurze Diskussion darüber, wie man Angular kompiliert und verpackt? Wie veröffentliche ich mit Docker?

Eine kurze Diskussion darüber, wie man Angular kompiliert und verpackt? Wie veröffentliche ich mit Docker?

Jun 07, 2021 am 11:08 AM
angular

Dieser Artikel stellt Ihnen die Methode des AngularKompilierens, Packens und Docker-Publishing vor. Es hat einen gewissen Referenzwert. Freunde in Not können sich darauf beziehen. Ich hoffe, es wird für alle hilfreich sein.

Eine kurze Diskussion darüber, wie man Angular kompiliert und verpackt? Wie veröffentliche ich mit Docker?

Umgebung:

  • Angular CLI: 11.0.6
  • Angular: 11.0.7
  • Node: 12.18.3
  • npm: 6.14.6
  • IDE: Visual. Studio Code

1. Zusammenfassung

Nachdem wir die Entwicklung von Angular abgeschlossen haben, wie stellen wir es auf dem Server bereit? [Empfohlene verwandte Tutorials: „Angular-Tutorial“]

2. Kompilierung und Verpackung

2.1. Grundlegende Paketierungsbefehle

Das auf der Angular-CLI generierte Angular-Projekt verfügt standardmäßig über zwei Umgebungskonfigurationsdateien

└──myProject/src/environments/
               └──environment.ts
               └──environment.prod.ts
Nach dem Login kopieren

  • environment.ts: Umgebungsdatei für die Entwicklungsumgebung

  • environment.prod.ts: Beim Kompilieren für die Produktionsumgebung wird die ursprüngliche Environment.ts ersetzt und dann gepackt. (angular.json im Stammverzeichnis definiert dieses Standardverhalten und kann bei Bedarf geändert werden)

Nachdem AngularCLI gerade zwei Dateien generiert hat und Sie die Unterschiede zwischen den beiden Dateien öffnen und vergleichen, können Sie die verwendete Umgebung sehen die Entwicklungsumgebung In der .ts-Datei gibt es diesen Satz produktion: false. Denn für die Produktionsumgebung muss Angular Aspekte wie Effizienz beim Kompilieren berücksichtigen, während es für die Entwicklungsumgebung für Entwickler bequem zu debuggen sein muss und der Schwerpunkt anders ist.

production: false。因为,针对生产环境,angular在编译时需要核心考虑效率等问题,而开发环境,要考虑方便开发者进行调试,侧重点不同。

那么针对生产环境如何编译呢?Angular CLI同样提供了命令,

ng build --prod
Nach dem Login kopieren

其中,参数--prod 即告诉编译环境,编译为生产环境包。同样,angular.json中定义了默认的编译参数,如果需要,可以进行修改。主要配置参数如下

"configurations": {
    "production": {
        "fileReplacements": [
        {
            "replace": "src/environments/environment.ts",
            "with": "src/environments/environment.prod.ts"
        }
        ],
        "optimization": true,
        "outputHashing": "all",
        "sourceMap": false,
        "extractCss": true,
        "namedChunks": false,
        "aot": false,
        "extractLicenses": true,
        "vendorChunk": false,
        "buildOptimizer": false,
        "budgets": [
        {
            "type": "initial",
            "maximumWarning": "5mb",
            "maximumError": "10mb"
        }
        ]
    }
}
Nach dem Login kopieren

Angular默认打包到根目录下的dist目录下,生成的文件为纯静态文件(html, css, js),以及图片文件。

2.2. 打包部署到二级目录

有不少情况,我们的angular web站点不能直接部署到网站的根目录下,需要部署到二级目录下。 比如,不能部署到 http://abc.com下,要求部署到 http://abc.com/demo 这个二级目录下。针对这种情况,就需要修改一下我们的编译参数,修改为:

ng build --prod --deploy-url /demo/ --base-href /demo/
Nach dem Login kopieren

增加 --deploy-url--base-href

使用场景:比如我们有多个站点,希望使用同一个反向代理, http://site1, http://site2, 分别映射到 http://abc.com/site1, http://abc.com/site2/。 那么为了方便配置,需要把site1, site2都部署到二级目录,如http://site1/site1, http://site2/site2。 然后 http://site1/site1代理到http://abc.com/site1, http://site2/site2代理到http://abc.com/site2/, 免得css、js因为目录级别问题找不到。

3. Angular站点的发布

Angular站点编译打包后,可以方便的发布到已有web服务器,或者打成docker image, 然后发布。

3.1. web服务器发布

因为我们打包后,生成的文件为纯静态文件(html, css, js, 图片等), 所以打包后的问题,可以直接copy到iis, nginx , apache tomcat等web服务器,或者node.js, java等可以显示静态文件的程序的目录下即可。

3.2. 使用docker发布

如果部署到docker,我们可以基于一个基础的nginx docker, 然后把编译好的angular项目,copy到docker 内的nginx目录下即可。

基本步骤:

  • 准备Dockerfile 文件, docker可以基于nginx:alpine, 将编译好的angular 站点文件复制到 docker 的nginx默认目录 /usr/share/nginx/html

FROM nginx:alpine
COPY . /usr/share/nginx/html
Nach dem Login kopieren

说明: 1) 假设angular打包后的文件,与Dockerfile文件在同一个目录
2) COPY . /usr/share/nginx/html, 两个参数 . 代表当前路径, /usr/share/nginx/htmlWie kompiliert man es also für die Produktionsumgebung? Angular CLI stellt auch Befehle bereit:

docker build -t your-docker-name .
docker save your-docker-name > your-docker-name.tar
gzip your-docker-name.tar
Nach dem Login kopieren
Darunter weist der Parameter --prod die Kompilierungsumgebung an, in ein Produktionsumgebungspaket zu kompilieren. Ebenso sind Standardkompilierungsparameter in angle.json definiert und können bei Bedarf geändert werden. Die Hauptkonfigurationsparameter lauten wie folgt: Angular wird standardmäßig in das Verzeichnis dist im Stammverzeichnis gepackt. Die generierten Dateien sind reine statische Dateien (HTML, CSS, JS) und Bilddateien.

  • 2.2. Packen und im sekundären Verzeichnis bereitstellen

Es gibt viele Situationen, in denen unsere Angular-Website nicht direkt im Stammverzeichnis der Website bereitgestellt werden kann und im sekundären Verzeichnis bereitgestellt werden muss. Es kann beispielsweise nicht auf http://abc.com bereitgestellt werden. Es muss im sekundären Verzeichnis http://abc.com/demo bereitgestellt werden. Als Reaktion auf diese Situation müssen wir unsere Kompilierungsparameter wie folgt ändern: 🎜rrreee🎜Fügen Sie --deploy-url und --base-href hinzu. 🎜🎜🎜Nutzungsszenarien: Beispielsweise haben wir mehrere Sites und möchten denselben Reverse-Proxy verwenden, http://site1, http://site2, dem zugeordnet ist http://abc.com/site1, http://abc.com/site2/. Um die Konfiguration zu erleichtern, müssen Site1 und Site2 in sekundären Verzeichnissen bereitgestellt werden, z. B. http://site1/site1, http://site2/site2. Dann ist http://site1/site1 ein Proxy für http://abc.com/site1 und http://site2/site2 Proxy für http://abc.com/site2/, sodass CSS und JS aufgrund von Problemen auf Verzeichnisebene nicht gefunden werden können. 🎜🎜🎜🎜3. Veröffentlichung der Angular-Site 🎜🎜🎜Nachdem die Angular-Site kompiliert und gepackt wurde, kann sie einfach auf einem vorhandenen Webserver veröffentlicht oder in ein Docker-Image umgewandelt und dann veröffentlicht werden. 🎜🎜🎜🎜3.1. Webserver-Release🎜🎜🎜🎜Da es sich bei den generierten Dateien nach dem Packen um reine statische Dateien (HTML, CSS, JS, Bilder usw.) handelt, können die gepackten Probleme direkt nach iis, nginx kopiert werden Es kann im Verzeichnis eines Webservers wie Apache Tomcat oder eines Programms abgelegt werden, das statische Dateien wie node.js, Java usw. anzeigen kann. 🎜🎜🎜🎜3.2. Verwenden Sie Docker zum Veröffentlichen 🎜🎜🎜🎜Bei der Bereitstellung im Docker können wir einen einfachen Nginx-Docker verwenden und dann das kompilierte Angular-Projekt in das Nginx-Verzeichnis im Docker kopieren. 🎜🎜Grundlegende Schritte: 🎜🎜🎜🎜 Docker-Datei vorbereiten: Kopieren Sie die kompilierte Angular-Site-Datei in das Nginx-Standardverzeichnis /usr/share/nginx basierend auf <code>nginx:alpine /html🎜🎜🎜rrreee🎜🎜Anweisungen: 1) Nehmen Sie an, dass sich die eckig gepackte Datei im selben Verzeichnis befindet wie die Dockerfile-Datei
2) COPY . /usr/share/nginx/html, zwei Parameter . stellt den aktuellen Pfad dar, /usr/share/nginx/html ist das Zielverzeichnis im Docker 🎜🎜🎜🎜🎜Kompilieren Sie Docker. Führen Sie im Dockerfile-Verzeichnis die drei Befehle 🎜🎜🎜rrreee🎜 aus: 🎜
  • Generieren Sie ein Docker-Image, der Name (Name) ist Ihr-Docker-Name.
  • Exportieren Sie das Docker-Image als lokale Datei. Der Dateiname lautet Ihr-Docker-Name.tar.
  • Komprimieren Sie das Docker-Image Sehen Sie es, weil es sich bei der Winkelkompilierung um rein statische Dateien handelt, sodass die Veröffentlichung mit Docker sehr einfach ist. Bei der Bereitstellung müssen Sie lediglich die Docker-Datei auf den Zielcomputer kopieren, sie dekomprimieren und dann docker load < your-docker-name.tar ausführen, um das Docker-Image auf den Zielcomputer zu laden.
  • 4. Zusammenfassung

      Zum Kompilieren für die Produktionsumgebung müssen Sie unbedingt den Parameter hinzufügen --prod docker load < your-docker-name.tar 即可加载docker image到目标机器。

      4. 总结

      • 为生产环境编译,一定要加参数--prod

      • 如果要部署到二级目录,编译时加参数。如部署到/demo二级目录下,加参数: --deploy-url /demo/ --base-href /demo/

      • Wenn Sie im sekundären Verzeichnis bereitstellen möchten, fügen Sie beim Kompilieren Parameter hinzu. Wenn Sie im sekundären Verzeichnis /demo bereitgestellt werden, fügen Sie Parameter hinzu: --deploy-url /demo/ --base-href /demo/

      Verwenden Sie Docker zum Veröffentlichen. Sie können den einfachen Nginx-Docker auswählen , und kopieren Sie dann die kompilierte Winkeldatei in das Nginx-Verzeichnis.

      Weitere Programmierkenntnisse finden Sie unter: 🎜Programmiervideo🎜! ! 🎜

    Das obige ist der detaillierte Inhalt vonEine kurze Diskussion darüber, wie man Angular kompiliert und verpackt? Wie veröffentliche ich mit Docker?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

    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

    Heiße KI -Werkzeuge

    Undresser.AI Undress

    Undresser.AI Undress

    KI-gestützte App zum Erstellen realistischer Aktfotos

    AI Clothes Remover

    AI Clothes Remover

    Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

    Undress AI Tool

    Undress AI Tool

    Ausziehbilder kostenlos

    Clothoff.io

    Clothoff.io

    KI-Kleiderentferner

    Video Face Swap

    Video Face Swap

    Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

    Heiße Werkzeuge

    Notepad++7.3.1

    Notepad++7.3.1

    Einfach zu bedienender und kostenloser Code-Editor

    SublimeText3 chinesische Version

    SublimeText3 chinesische Version

    Chinesische Version, sehr einfach zu bedienen

    Senden Sie Studio 13.0.1

    Senden Sie Studio 13.0.1

    Leistungsstarke integrierte PHP-Entwicklungsumgebung

    Dreamweaver CS6

    Dreamweaver CS6

    Visuelle Webentwicklungstools

    SublimeText3 Mac-Version

    SublimeText3 Mac-Version

    Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

    Lassen Sie uns über Metadaten und Dekoratoren in Angular sprechen Lassen Sie uns über Metadaten und Dekoratoren in Angular sprechen Feb 28, 2022 am 11:10 AM

    Dieser Artikel setzt das Erlernen von Angular fort, führt Sie zum Verständnis der Metadaten und Dekoratoren in Angular und erläutert kurz deren Verwendung. Ich hoffe, dass er für alle hilfreich ist!

    So installieren Sie Angular unter Ubuntu 24.04 So installieren Sie Angular unter Ubuntu 24.04 Mar 23, 2024 pm 12:20 PM

    Angular.js ist eine frei zugängliche JavaScript-Plattform zum Erstellen dynamischer Anwendungen. Es ermöglicht Ihnen, verschiedene Aspekte Ihrer Anwendung schnell und klar auszudrücken, indem Sie die Syntax von HTML als Vorlagensprache erweitern. Angular.js bietet eine Reihe von Tools, die Sie beim Schreiben, Aktualisieren und Testen Ihres Codes unterstützen. Darüber hinaus bietet es viele Funktionen wie Routing und Formularverwaltung. In dieser Anleitung wird erläutert, wie Angular auf Ubuntu24 installiert wird. Zuerst müssen Sie Node.js installieren. Node.js ist eine JavaScript-Ausführungsumgebung, die auf der ChromeV8-Engine basiert und es Ihnen ermöglicht, JavaScript-Code auf der Serverseite auszuführen. In Ub sein

    Detaillierte Erläuterung des Angular Learning State Managers NgRx Detaillierte Erläuterung des Angular Learning State Managers NgRx May 25, 2022 am 11:01 AM

    Dieser Artikel vermittelt Ihnen ein detailliertes Verständnis des Angular-Statusmanagers NgRx und stellt Ihnen die Verwendung von NgRx vor. Ich hoffe, er wird Ihnen hilfreich sein!

    Ein Artikel über serverseitiges Rendering (SSR) in Angular Ein Artikel über serverseitiges Rendering (SSR) in Angular Dec 27, 2022 pm 07:24 PM

    Kennen Sie Angular Universal? Es kann dazu beitragen, dass die Website eine bessere SEO-Unterstützung bietet!

    Wie man PHP und Angular für die Frontend-Entwicklung verwendet Wie man PHP und Angular für die Frontend-Entwicklung verwendet May 11, 2023 pm 04:04 PM

    Mit der rasanten Entwicklung des Internets wird auch die Front-End-Entwicklungstechnologie ständig verbessert und iteriert. PHP und Angular sind zwei Technologien, die in der Frontend-Entwicklung weit verbreitet sind. PHP ist eine serverseitige Skriptsprache, die Aufgaben wie die Verarbeitung von Formularen, die Generierung dynamischer Seiten und die Verwaltung von Zugriffsberechtigungen übernehmen kann. Angular ist ein JavaScript-Framework, mit dem Single-Page-Anwendungen entwickelt und komponentenbasierte Webanwendungen erstellt werden können. In diesem Artikel erfahren Sie, wie Sie PHP und Angular für die Frontend-Entwicklung verwenden und wie Sie diese kombinieren

    Angular + NG-ZORRO entwickeln schnell ein Backend-System Angular + NG-ZORRO entwickeln schnell ein Backend-System Apr 21, 2022 am 10:45 AM

    In diesem Artikel erfahren Sie, wie Sie mit Angular in Kombination mit ng-zorro schnell ein Backend-System entwickeln. Ich hoffe, dass er für alle hilfreich ist.

    Eine kurze Analyse der Verwendung des Monaco-Editors in Angular Eine kurze Analyse der Verwendung des Monaco-Editors in Angular Oct 17, 2022 pm 08:04 PM

    Wie verwende ich den Monaco-Editor in Angular? Der folgende Artikel dokumentiert die Verwendung des Monaco-Editors in Angular, der kürzlich in einem Unternehmen verwendet wurde. Ich hoffe, dass er für alle hilfreich sein wird!

    Eine kurze Analyse unabhängiger Komponenten in Angular und deren Verwendung Eine kurze Analyse unabhängiger Komponenten in Angular und deren Verwendung Jun 23, 2022 pm 03:49 PM

    Dieser Artikel führt Sie durch die unabhängigen Komponenten in Angular, wie Sie eine unabhängige Komponente in Angular erstellen und wie Sie vorhandene Module in die unabhängige Komponente importieren. Ich hoffe, er wird Ihnen hilfreich sein!

    See all articles