RE: Angular2 2.0.0, angular-cli v1.0.0-beta.11-webpack.8
Bagaimana cara memberi tahu angular-cli untuk menyertakan file dari "src / assets" di root "dist" saat dibuat?
Kami menerapkan ke host Windows dan perlu menyertakan file "web.config" untuk memberi tahu IIS agar merutekan semuanya ke indeks. Kami melakukan ini sebelum RC4, tetapi dengan semua pembaruan itu gagal (saya tidak ingat bagaimana kami melakukannya).
Saya telah menjelajahi dokumen repo GitHub dan belum menemukan apa pun yang berguna sehubungan dengan topik ini. Mungkin saya di tempat yang salah?
Di ToC , ada poin peluru "Menambahkan file ekstra ke build", tetapi tampaknya bagian itu tidak ada.
angular
angular-cli
Kizmar
sumber
sumber
"copy:webConfig": "node node_modules/copy/bin/cli.js web.config dist"
. Saya juga menambahkan membangun script post:"postbuild": "npm run copy:webConfig"
. Ada masalah lain saat mencoba membuat salinan berfungsi, tetapi ini berhasil.Jawaban:
Properti "assets" dari angular-cli.json dapat dikonfigurasi untuk menyertakan file khusus dalam pembuatan webpack angular-cli. Jadi, konfigurasikan nilai properti "aset" sebagai larik. Sebagai contoh:
konfigurasi di atas akan menyalin config.jsn dan .htaccess ke folder dist selama pembuatan webpack angular-cli. pengaturan di atas bekerja di angular-cli versi 1.0.0-beta.18
sumber
Jawaban yang Benar Saat Ini:
Tim telah menambahkan dukungan untuk menyalin file tertentu apa adanya ke folder output (
dist
secara default) di versi CLI Angular yang lebih baru (akan menjadi beta 17 atau 19 - sudah dalam rilis final 1.x selama berabad-abad).Anda hanya menambahkannya ke array
angular-cli.json
seperti:(Perhatikan bahwa jalur relatif ke
src
folder)Saya pribadi menggunakannya dan berfungsi dengan baik.
Mulai beta 24, saya telah menambahkan fitur ke Angular CLI yang memastikan semuaassets
file dan folder dilayani dari server dev webpack saat berjalanng test
tidak hanyang serve
.Ini juga mendukung penyajian file aset di server dev webpack yang digunakan untuk pengujian unit (
ng test
).(jika Anda memerlukan beberapa file JSON untuk pengujian, atau tidak suka melihat peringatan 404 di konsol).
Mereka sudah dilayani dari
ng e2e
karena sudah penuhng serve
.Dan itu juga memiliki fitur yang lebih canggih, seperti memfilter file apa yang Anda inginkan dari folder, dan memiliki nama folder keluaran yang berbeda dari folder sumber:
Anda juga dapat merujuk ke dokumentasi resmi: Panduan Sudut - Konfigurasi ruang kerja .
.
[KHUSUS UNTUK ARSIP] Jawaban Asli (6 Okt 2016):
Sayangnya, ini tidak didukung saat ini (pada beta-16). Saya menyampaikan kekhawatiran yang sebenarnya kepada tim (file web.config), tetapi tampaknya itu tidak akan terjadi dalam waktu dekat (kecuali jika Anda membagi CLI, dll).
Ikuti masalah ini untuk diskusi lengkap dan kemungkinan detail di masa mendatang.
PSUntuk file JSON, Anda bisa memasukkannya
./src/assets/
. Folder ini disalin sebagaimana adanya./dist/assets/
. Ini adalah perilaku saat ini.Sebelumnya di systemJS hari ada
./public/
folder lain yang disalin./dist/
secara langsung, tetapi ini hilang dalam versi Webpack, yang dibahas masalah yang disebutkan di atas.sumber
Salah satu solusinya (meskipun menurut saya sedikit hack) adalah mendeklarasikan variabel di
main.ts
file Anda yang memerlukan file tambahan yang ingin Anda sertakan dalam output build webpack.EX:
Ketika webpack menemukan pernyataan deklarasi variabel ini di
main.ts
dalamnya, itu akan memancarkanweb.config
file mentah sebagai bagian dari keluaran build:Solusi yang ideal adalah dalam konfigurasi webpack, tetapi saya tidak dapat memahami bagaimana angular-cli mengelolanya hingga
angular-cli.json
saat ini (beta.16).Jadi, jika ada yang memiliki jawaban lebih baik yang memperluas konfigurasi webpack untuk proyek yang dihasilkan angular-cli, saya akan senang mendengarnya.
sumber
Untuk pembaca Angular 8 ,
.htaccess
perlusrc/.htaccess
. Lihat di bawah,Pastikan Anda telah menempatkan
.htaccess
file di dalamsrc
direktori proyek Anda.(Jika Anda memerlukan
htaccess
file yang valid , Anda dapat menemukannya di sini - https://stackoverflow.com/a/57126352/767625 )Itu dia. Ini sekarang harus disalin saat Anda menekan
ng build --prod=true
.Semoga ini bisa membantu seseorang.
Bersulang,
sumber
angular.json
, bukan yangangular-cli.json
disebutkan dalam jawaban sebelumnya.Ada bagian "skrip" di file angular-cli.json. Anda dapat menambahkan semua file javascript pihak ketiga di sana.
sumber
Dalam kasus saya, saya menggunakan Angular versi 5 , Jadi saya mencoba membuat file bernama Staticfile.txt saat menjalankan ng build --prod perintah. pastikan untuk memberikan ekstensi file, jika tidak maka tidak akan membuat file.
sumber
Ubah angular.json.
Tambahkan entri ke larik aset:
sumber