Anda sebenarnya di sini menyentuh dua pertanyaan dalam satu.
Yang pertama adalah Bagaimana meng-host aplikasi Anda? .
Dan seperti @toskv menyebutkan pertanyaan yang sangat luas untuk dijawab dan tergantung pada banyak hal yang berbeda.
Yang kedua adalah Bagaimana Anda mempersiapkan versi penerapan aplikasi? .
Anda memiliki beberapa opsi di sini:
- Sebarkan apa adanya. Hanya saja - tidak ada minifikasi, penggabungan, pengubahan nama, dll. Transpile semua proyek ts Anda salin semua sumber js / css / ... yang dihasilkan + dependensi ke server hosting dan Anda dapat melanjutkan.
Menyebarkan menggunakan alat bundling khusus, suka webpack
atau systemjs
pembangun.
Mereka datang dengan semua kemungkinan yang kurang di # 1.
Anda dapat mengemas semua kode aplikasi Anda menjadi hanya beberapa file js / css / ... yang Anda referensi dalam HTML Anda. systemjs
builder bahkan memungkinkan Anda untuk menyingkirkan kebutuhan untuk disertakan systemjs
sebagai bagian dari paket penerapan Anda.
Anda dapat menggunakan ng deploy
Per 8 untuk menyebarkan aplikasi Anda dari CLI Anda. ng deploy
perlu digunakan bersamaan dengan platform pilihan Anda (seperti @angular/fire
). Anda dapat memeriksa dokumen resmi untuk melihat apa yang paling cocok untuk Anda di sini
Ya, Anda kemungkinan besar perlu menggunakan systemjs
dan banyak perpustakaan eksternal lainnya sebagai bagian dari paket Anda. Dan ya Anda akan dapat membundelnya menjadi hanya beberapa file js yang Anda referensi dari halaman HTML Anda.
Anda tidak harus merujuk semua file js yang dikompilasi dari halaman - systemjs
karena pemuat modul akan menangani hal itu.
Saya tahu kedengarannya berlumpur - untuk membantu Anda memulai dengan # 2 di sini adalah dua contoh aplikasi yang sangat bagus:
Pembangun SystemJS: angular2 seed
WebPack: starter webpack angular2
node_modules
juga. Catatan - Anda hanya harus menyalin dependensi yang diperlukan untuk menjalankan program. Jangan menyalin deps yang hanya digunakan untuk pengembangan (misalnya tegukan / mendengus / dll).Jawaban sederhana Gunakan CLI Angular dan keluarkan
perintah di direktori root proyek Anda. Situs ini akan dibuat di direktori dist dan Anda dapat menyebarkannya ke server web mana pun.
Ini akan dibangun untuk pengujian, jika Anda memiliki pengaturan produksi di aplikasi yang harus Anda gunakan
Ini akan membangun proyek di
dist
direktori dan ini dapat didorong ke server.Banyak yang telah terjadi sejak saya pertama kali memposting jawaban ini. CLI akhirnya berada di 1.0.0 sehingga mengikuti panduan ini, perbarui proyek Anda harus terjadi sebelum Anda mencoba membangun. https://github.com/angular/angular-cli/wiki/stories-rc-update
sumber
Dengan Angular CLI itu mudah. Contoh untuk Heroku:
Buat akun Heroku dan instal CLI
Pindahkan
angular-cli
dep kedependencies
dalampackage.json
(sehingga terinstal ketika Anda mendorong ke Heroku.Tambahkan
postinstall
skrip yang akan berjalanng build
ketika kode didorong ke Heroku. Juga tambahkan perintah mulai untuk server Node yang akan dibuat pada langkah berikut. Ini akan menempatkan file statis untuk aplikasi dalamdist
direktori di server dan memulai aplikasi sesudahnya.Berikut ini langganan cepat yang saya lakukan yang memiliki detail lebih lanjut, termasuk cara memaksa permintaan untuk menggunakan HTTPS dan cara menangani
PathLocationStrategy
:)sumber
Saya gunakan dengan selamanya :
ng build --prod --output-path ./dist
Buat file server.js di jalur aplikasi Angular Anda:
Mulai selamanya
forever start server.js
Itu saja! aplikasi Anda harus dijalankan!
sumber
Semoga ini bisa membantu, dan mudah-mudahan saya akan mencoba ini selama seminggu.
sumber
Can't resolve 'node-uuid' in path\azure-deploy\lib
. Apakah ini masih mungkin? Saya mengkonfigurasi langkah 5app.module
dan saya tidak yakin saya melakukan langkah 3 dan 4 dengan benar. Bisakah Anda menjelaskannya?Jika Anda menguji aplikasi seperti saya di localhost atau Anda akan memiliki beberapa masalah dengan halaman putih kosong saya menggunakan ini:
Penjelasan:
Membangun aplikasi tetapi dalam kode ada banyak ruang, tab, dan hal-hal lain yang membuat kode dapat dibaca oleh manusia. Untuk server, tidak penting bagaimana kode terlihat. Inilah mengapa saya menggunakan:
Ini membuat kode keluar untuk produksi dan mengurangi ukuran [
--build-optimizer
] memungkinkan untuk mengurangi lebih banyak kode].Jadi pada akhirnya saya menambahkan
--base-href="http://127.0.0.1/my-app/"
untuk menampilkan aplikasi di mana 'bingkai utama' [dengan kata sederhana]. Dengannya Anda bahkan dapat memiliki beberapa aplikasi bersudut dalam folder apa pun.sumber
Untuk menyebarkan aplikasi Angular2 Anda ke server produksi, pertama dan terutama, pastikan aplikasi Anda berjalan secara lokal di mesin Anda.
Aplikasi Angular2 juga dapat digunakan sebagai aplikasi simpul.
Jadi, buat file titik entri simpul server.js / app.js (contoh saya menggunakan express)
Tambahkan juga express sebagai dependensi dalam file package.json Anda.
Kemudian sebarkan di lingkungan pilihan Anda.
Saya telah membuat sebuah blog kecil untuk ditempatkan di IIS. ikuti tautan
sumber
Untuk Menyebarkan aplikasi Anda di IIS ikuti langkah-langkah di bawah ini.
Langkah 1: Bangun aplikasi Angular Anda menggunakan perintah ng build --prod
Langkah 2: Setelah membangun semua file disimpan di folder dist jalur aplikasi Anda.
Langkah 3: Buat folder di C: \ inetpub \ wwwroot dengan nama QRCode .
Langkah 4: Salin isi folder dist ke C: \ inetpub \ wwwroot \ QRCode .
Langkah 5: Buka IIS Manager menggunakan perintah (Window + R) dan ketik inetmgr klik OK.
Langkah 6: Klik kanan pada Situs Web Default dan klik Tambah Aplikasi .
Langkah 7: Masukkan nama Alias 'QRCode' dan setel path fisik ke C: \ inetpub \ wwwroot \ QRCode .
Langkah 8: Buka file index.html dan temukan baris href = "\" dan hapus '\'.
Langkah 9: Sekarang jelajahi aplikasi di browser apa pun.
Anda juga dapat mengikuti video untuk pemahaman yang lebih baik.
Url video: https://youtu.be/F8EI-8XUNZc
sumber
Jika Anda menggunakan aplikasi Anda di Apache (server Linux) sehingga Anda dapat mengikuti langkah-langkah berikut: Ikuti langkah-langkah berikut :
Langkah 1 :
ng build --prod --env=prod
Langkah 2 . (Salin dist ke server) kemudian dist folder dibuat, salin folder dist dan sebarkan di direktori root server.
Langkah 3 . Buat
.htaccess
file di folder root dan rekatkan ini di.htaccess
sumber
Anda mendapatkan bundel produksi pemuatan terkecil dan tercepat dengan mengkompilasi dengan kompilator Ahead of Time, dan tree-shake / minify dengan rollup seperti yang ditunjukkan dalam buku masak AOT sudut di sini: https://angular.io/docs/ts/latest/cookbook /aot-compiler.html
Ini juga tersedia dengan CLI Angular seperti yang dikatakan dalam jawaban sebelumnya, tetapi jika Anda belum membuat aplikasi menggunakan CLI Anda harus mengikuti buku masak.
Saya juga memiliki contoh kerja dengan bahan dan grafik SVG (didukung oleh Angular2) yang mencakup bundel yang dibuat dengan buku masak AOT. Anda juga menemukan semua konfigurasi dan skrip yang diperlukan untuk membuat bundel. Lihat di sini: https://github.com/fintechneo/angular2-templates/
Saya membuat video cepat yang menunjukkan perbedaan antara jumlah file dan ukuran AoT yang dikompilasi dengan lingkungan pengembangan. Ini menunjukkan proyek dari repositori github di atas. Anda dapat melihatnya di sini: https://youtu.be/ZoZDCgQwnmQ
sumber
"This cookbook describes how to radically improve performance by compiling Ahead of Time (AOT) during a build process."
Penerapan Angular 2 di Halaman Github
Menguji Penerapan Angular2 Webpack di ghpages
Pertama dapatkan semua file yang relevan dari
dist
folder aplikasi Anda, bagi saya itu adalah: + file css di folder aset + main.bundle.js + polyfills.bundle.js + vendor.bundle.jsKemudian dorong file ini dalam repo yang telah Anda buat.
1 - Jika Anda ingin aplikasi dijalankan pada direktori root - buat repo khusus dengan nama [ nama pengguna Anda] .github.io dan dorong file-file ini di cabang master
2 - Di mana seolah-olah Anda ingin membuat halaman ini di sub direktori atau di cabang lain selain dari root, buat halaman gh cabang dan dorong file-file ini di cabang itu.
Dalam kedua kasus cara kita mengakses halaman yang digunakan ini akan berbeda.
Untuk case pertama adalah https: // [nama pengguna yourgith] .github.io dan untuk kasus kedua itu adalah [nama pengguna yourgith] .github.io / [Repo name] .
Jika seandainya Anda ingin menyebarkannya menggunakan case kedua pastikan untuk mengubah url dasar dari file index.html di dist karena semua pemetaan rute tergantung pada jalur yang Anda berikan dan itu harus diatur ke [/ branchname].
Tautan ke halaman ini
https://rahulrsingh09.github.io/Deployment
Git Repo
https://github.com/rahulrsingh09/Deployment
sumber
Untuk cara yang cepat dan murah untuk meng-host aplikasi sudut, saya telah menggunakan hosting Firbase. Gratis di tingkat pertama dan sangat mudah untuk menyebarkan versi baru menggunakan Firebase CLI. Artikel ini di sini menjelaskan langkah-langkah yang diperlukan untuk menggunakan aplikasi angular 2 produksi Anda ke Firebase: https://medium.com/codingthesmartway-com-blog/hosting-angular-2-applications-on-firebase-f194688c978d
Singkatnya, Anda menjalankan
ng build --prod
yang membuat folder dist dalam paket dan itulah folder yang akan digunakan untuk Firebase Hosting.sumber
Menyebarkan Angular 2 dalam warna biru mudah
Jalankan ng build --prod , yang akan menghasilkan folder dist dengan semua yang dibundel dalam beberapa file termasuk index.html.
Buat grup sumber daya dan aplikasi web di dalamnya.
Tempatkan file folder dist Anda menggunakan FTP. Di biru itu akan mencari index.html untuk menjalankan aplikasi.
Itu dia. Aplikasi Anda sedang berjalan!
sumber
Pada 2017 cara terbaik adalah menggunakan angular-cli (v1.4.4) untuk proyek sudut Anda.
Anda tidak perlu menambahkan - secara eksplisit karena dihidupkan secara default dengan --prod. Dan penggunaan --output-hashing sesuai dengan preferensi pribadi Anda mengenai peledakan cache.
Anda dapat secara eksplisit menambahkan dukungan CDN dengan menambahkan:
jika Anda berencana untuk menggunakan CDN untuk hosting yang sangat cepat.
sumber
Dengan Angular CLI , Anda dapat menggunakan perintah berikut:
Ini menghasilkan folder dist dengan semua yang Anda butuhkan untuk menggunakan aplikasi.
Jika Anda tidak berlatih dengan server web, saya sarankan Anda menggunakan Angular to Cloud . Anda hanya perlu mengompres folder dist sebagai file zip dan mengunggahnya di platform.
sumber
Saya akan mengatakan banyak orang dengan pengalaman Web sebelum sudut, digunakan untuk menyebarkan artefak web mereka di dalam perang (yaitu jquery dan html di dalam proyek Java / Spring). Saya akhirnya melakukan ini untuk mengatasi masalah CORS, setelah mencoba untuk menjaga proyek sudut dan REST saya terpisah.
Solusi saya adalah memindahkan semua konten sudut (4), dihasilkan dengan CLI, dari aplikasi saya ke MyJavaApplication / angular. Kemudian saya memodifikasi build Maven saya untuk menggunakan maven-resources-plugin untuk memindahkan konten dari / angular / dist ke root dari distribusi saya (mis. $ Project.build.directory} / MyJavaApplication). Angular memuat sumber daya dari root perang secara default.
Ketika saya mulai menambahkan perutean ke proyek sudut saya, saya memodifikasi maven build untuk menyalin index.html dari / dist ke WEB-INF / app. Dan, menambahkan pengontrol Java yang mengalihkan semua panggilan sisi server sisanya untuk diindeks.
sumber
Ikuti saja tautan di bawah ini,
Ubah halaman Index.html Anda Script Path file Ubah path component.html Anda jika Anda mendapatkan kesalahan yang tidak dapat menemukan lokasi
https://angular.io/docs/ts/latest/guide/deployment.html#!#dev-deploy
sumber