Bagaimana cara menampilkan versi aplikasi dalam aplikasi sudut? versi harus diambil dari package.json
file
{
"name": "angular-app",
"version": "0.0.1",
...
}
Dalam angular 1.x, saya memiliki html ini:
<p><%=version %></p>
Secara bersudut, ini tidak diberikan sebagai nomor versi, melainkan hanya dicetak sebagaimana adanya ( <%=version %>
bukan 0.0.1
).
version
angular
package.json
Zbynek
sumber
sumber
typescript
, gunakannpm start
untuk menjalankan kompilasi danSystemJS
untuk mengatur konfigurasi. apakah ada cara untuk menyetel versi menggunakan salah satu dari ini?Jawaban:
Jika Anda ingin menggunakan / menampilkan nomor versi di aplikasi sudut Anda, lakukan hal berikut:
Prasyarat:
File sudut dan struktur folder dibuat melalui CLI Angular
TypeScript 2.9 atau yang lebih baru! (Didukung dari Angular 6.1 ke atas)
Langkah:
/tsconfig.json
(terkadang juga diperlukan/src/tsconfig.app.json
), aktifkan opsi resolJsonModule (perlu dimulai ulang server dev webpack setelahnya):/src/app/app.component.ts
gunakan info versi:Anda juga dapat melakukan langkah 2 di file environment.ts Anda, membuat info versi dapat diakses dari sana.
Thx @Ionaru dan @MarcoRinck untuk membantu keluar.
Solusi ini tidak akan menyertakan konten package.json, hanya nomor versinya.
Diuji dengan Angular8 / Node10 / TypeScript3.4.3.
Harap perbarui aplikasi Anda untuk menggunakan solusi ini karena bergantung pada konten package.json solusi asli mungkin melibatkan masalah keamanan.
sumber
Jika Anda menggunakan webpack atau angular-cli (yang menggunakan webpack), Anda bisa meminta package.json di komponen Anda dan menampilkan prop itu.
Dan kemudian Anda memiliki komponen Anda
sumber
Menggunakan opsi tsconfig,
--resolveJsonModule
Anda dapat mengimpor file json di Typecript.Di file environment.ts:
Anda sekarang dapat menggunakan
environment.VERSION
aplikasi Anda.sumber
Hasil percobaan DyslexicDcuk
cannot find name require
Kemudian, membaca bagian 'Pemuatan Modul Opsional dan Skenario Pemuatan Lanjutan Lainnya' di https://www.typescriptlang.org/docs/handbook/modules.html membantu saya mengatasi ini. (Disebutkan oleh Gary di sini https://stackoverflow.com/a/41767479/7047595 )
Gunakan pernyataan di bawah ini untuk meminta package.json.
sumber
Solusi sederhana untuk pengguna cli sudut.
add
declare module '*.json';
onsrc/typings.d.ts
Lalu
src/environments/environment.ts
:Selesai :)
sumber
"allowSyntheticDefaultImports": true
ke tsconfig.json tergantung pada versi Angular Anda.Ketikan
HTML
sumber
Sebaiknya deklarasikan
version
sebagai variabel lingkungan sehingga Anda dapat menggunakannya di mana saja dalam proyek Anda. (Khususnya jika memuat file yang akan di-cache berdasarkan versie.g. yourCustomjsonFile.json?version=1.0.0
)Untuk mencegah masalah keamanan (seperti yang disebutkan @ZetaPR) kita dapat menggunakan pendekatan ini (pada komentar @sgwatgit)
Singkatnya: kami membuat yourProjectPath \ PreBuild.js mengajukan. Seperti ini:
Cuplikan di atas akan membuat file baru
/src/environments/version.ts
yang berisi konstanta bernamaversion
dan mengaturnya dengan nilai yang diekstrak daripackage.json
file.Untuk menjalankan konten
PreBuild.json
on build, Kami menambahkan file ini kePackage.json
->"scripts": { ... }"
bagian seperti berikut. Jadi kita bisa menjalankan proyek menggunakan kode ininpm start
:Sekarang kita dapat mengimpor versi dan menggunakannya dimanapun kita inginkan:
sumber
Saya tidak berpikir bahwa "Persen Braket Sudut" ada hubungannya dengan sudut1. Sepertinya itu adalah antarmuka ke API lain yang tidak Anda sadari sedang digunakan dalam proyek Anda sebelumnya.
Solusi termudah Anda: cukup daftarkan nomor versi secara manual di file HTML Anda atau simpan dalam variabel global jika Anda menggunakannya di banyak tempat:
Solusi Anda yang lebih sulit: jalankan langkah otomatisasi build yang mengekstrak nomor versi dari file package.json Anda dan kemudian tulis ulang file index.html Anda (atau file js / ts) untuk menyertakan nilai:
Bisa langsung mengimpor atau memerlukan file package.json, jika Anda bekerja di lingkungan yang mendukungnya:
var version = require("../package.json").version;
Ini juga bisa dilakukan dalam skrip bash yang membaca package.json dan kemudian mengedit file lain.
sumber
<% %>
biasanya menunjukkan bahasa .Net seperti c #Saya telah mencoba menyelesaikan ini dengan cara yang sedikit berbeda, juga mempertimbangkan kemudahan kenyamanan dan pemeliharaan.
Saya telah menggunakan skrip bash untuk mengubah versi di seluruh aplikasi. Skrip berikut akan menanyakan nomor versi yang diinginkan, dan hal yang sama diterapkan di seluruh aplikasi.
Saya telah menyimpan skrip ini dalam file bernama version-manager.sh di root proyek, dan di file package.json saya, saya juga membuat skrip untuk menjalankannya saat diperlukan untuk mengubah versi.
Akhirnya, saya bisa mengubah versinya dengan menjalankan
Perintah ini akan mengubah versi di template index.html dan juga di file package.json. Berikut adalah beberapa tangkapan layar yang diambil dari aplikasi saya yang ada.
sumber
Anda bisa membaca package.json seperti file lainnya, dengan http.get seperti ini:
sumber