Saya ingin memperbarui Bootstrap di ASP.NET Core dengan NuGet. Saya menggunakan ini:
Install-Package bootstrap -Version 4.0.0
Itu memang menambahkan dependensi tetapi bagaimana cara menambahkannya ke proyek saya sekarang? Apa jalur untuk dependensi NuGet lokal?
.net
asp.net-core
nuget
bootstrap-4
asp.net-core-2.0
pengembang
sumber
sumber
Jawaban:
Seperti yang telah disebutkan orang lain, manajer paket Bower , yang biasanya digunakan untuk dependensi seperti ini dalam aplikasi yang tidak bergantung pada skrip sisi klien yang berat, sedang keluar dan secara aktif merekomendasikan untuk pindah ke solusi lain:
Jadi meskipun Anda masih dapat menggunakannya sekarang, Bootstrap juga telah mengumumkan untuk menghentikan dukungannya . Akibatnya, template ASP.NET Core bawaan perlahan-lahan diedit untuk menjauh darinya juga.
Sayangnya, tidak ada jalan yang jelas ke depan. Hal ini sebagian besar disebabkan oleh fakta bahwa aplikasi web terus bergerak lebih jauh ke sisi klien, membutuhkan sistem build sisi klien yang kompleks dan banyak ketergantungan. Jadi jika Anda membangun sesuatu seperti itu, Anda mungkin sudah tahu cara menyelesaikannya, dan Anda dapat memperluas proses pembuatan yang ada untuk menyertakan Bootstrap dan jQuery di sana.
Namun masih banyak aplikasi web di luar sana yang tidak terlalu berat di sisi klien, di mana aplikasi tersebut masih berjalan terutama di server dan sebagai hasilnya server menyajikan tampilan statis. Bower sebelumnya mengisi ini dengan membuatnya mudah untuk hanya mempublikasikan dependensi sisi klien tanpa banyak proses.
Di dunia .NET kami juga memiliki NuGet dan dengan versi ASP.NET sebelumnya, kami dapat menggunakan NuGet juga untuk menambahkan dependensi ke beberapa dependensi sisi klien karena NuGet hanya akan menempatkan konten ke dalam proyek kami dengan benar. Sayangnya, dengan
.csproj
format baru dan NuGet baru, paket yang diinstal berada di luar proyek kami, jadi kami tidak bisa begitu saja mereferensikannya.Ini memberi kita beberapa opsi bagaimana menambahkan dependensi kita:
Instalasi satu kali
Inilah yang sedang dilakukan oleh template ASP.NET Core, yang bukan aplikasi halaman tunggal. Saat Anda menggunakannya untuk membuat aplikasi baru,
wwwroot
folder tersebut hanya berisi folderlib
yang berisi dependensi:Jika Anda melihat lebih dekat pada file saat ini, Anda dapat melihat bahwa mereka awalnya ditempatkan di sana dengan Bower untuk membuat template, tetapi kemungkinan akan segera berubah. Ide dasarnya adalah bahwa file tersebut disalin sekali ke
wwwroot
folder sehingga Anda dapat bergantung padanya.Untuk melakukan ini, kita cukup mengikuti pengenalan Bootstrap dan mengunduh file yang dikompilasi secara langsung. Seperti yang disebutkan di situs unduhan, ini tidak termasuk jQuery , jadi kita perlu mengunduhnya secara terpisah juga; itu memang berisi Popper.js meskipun jika kita memilih untuk menggunakan
bootstrap.bundle
file nanti — yang akan kita lakukan. Untuk jQuery, kita cukup mendapatkan satu file "terkompresi, produksi" dari situs download (klik kanan link tersebut dan pilih "Save link as ..." dari menu).Ini menyisakan kami dengan beberapa file yang hanya akan diekstrak dan disalin ke dalam
wwwroot
folder. Kami juga dapat membuatlib
folder untuk memperjelas bahwa ini adalah dependensi eksternal:Hanya itu yang kami butuhkan, jadi sekarang kami hanya perlu menyesuaikan
_Layout.cshtml
file kami untuk menyertakan dependensi tersebut. Untuk itu, kami menambahkan blok berikut ke<head>
:Dan blok berikut di bagian paling akhir dari
<body>
:Anda juga dapat menyertakan versi yang diperkecil dan melewati
<environment>
penolong tag di sini untuk membuatnya sedikit lebih sederhana. Tetapi hanya itu yang perlu Anda lakukan untuk membuat Anda tetap memulai.Ketergantungan dari NPM
Cara yang lebih modern, juga jika Anda ingin terus memperbarui dependensi Anda, adalah dengan mendapatkan dependensi dari repositori paket NPM. Anda dapat menggunakan NPM atau Benang untuk ini; dalam contoh saya, saya akan menggunakan NPM.
Untuk memulai, kita perlu membuat
package.json
file untuk proyek kita, jadi kita bisa menentukan dependensi kita. Untuk melakukan ini, kita cukup melakukannya dari dialog "Tambahkan Item Baru":Setelah kami memilikinya, kami perlu mengeditnya untuk memasukkan dependensi kami. Seharusnya terlihat seperti ini:
Dengan menyimpan, Visual Studio sudah akan menjalankan NPM untuk menginstal dependensi untuk kita. Mereka akan dipasang ke dalam
node_modules
folder. Jadi yang tersisa untuk dilakukan adalah memasukkan file dari sana kewwwroot
folder kita . Ada beberapa opsi untuk melakukannya:bundleconfig.json
untuk bundling dan minifikasiKita dapat menggunakan salah satu dari berbagai cara untuk menggunakan a
bundleconfig.json
untuk bundling dan minifikasi, seperti yang dijelaskan dalam dokumentasi . Cara yang sangat mudah adalah dengan menggunakan paket BuildBundlerMinifier NuGet yang secara otomatis menyiapkan tugas build untuk ini.Setelah menginstal paket itu, kita perlu membuat
bundleconfig.json
di root proyek dengan konten berikut:Ini pada dasarnya mengkonfigurasi file mana yang akan digabungkan menjadi apa. Dan saat kami membangun, kami dapat melihat bahwa file
vendor.min.css
danvendor.js.css
dibuat dengan benar. Jadi yang perlu kita lakukan adalah menyesuaikan_Layouts.html
lagi untuk memasukkan file-file itu:Menggunakan pengelola tugas seperti Gulp
Jika kita ingin beralih sedikit ke pengembangan sisi klien, kita juga bisa mulai menggunakan alat yang akan kita gunakan di sana. Misalnya Webpack yang merupakan alat build yang sangat umum digunakan untuk segala hal. Tapi kita juga bisa mulai dengan pengelola tugas yang lebih sederhana seperti Gulp dan melakukan sendiri beberapa langkah yang diperlukan.
Untuk itu, kami menambahkan file
gulpfile.js
ke root proyek kami, dengan konten berikut:Sekarang, kita juga perlu menyesuaikan
package.json
agar ketergantungan kita padagulp
dangulp-concat
:Akhirnya, kami mengedit file
.csproj
untuk menambahkan tugas berikut yang memastikan bahwa tugas Gulp kami berjalan saat kami membangun proyek:Sekarang, saat kami membangun,
default
tugas Gulp berjalan, yang menjalankanbuild-vendor
tugas, yang kemudian membangun kamivendor.min.css
danvendor.min.js
seperti yang kami lakukan sebelumnya. Jadi setelah menyesuaikan_Layout.cshtml
seperti di atas, kita bisa menggunakan jQuery dan Bootstrap.Sedangkan pengaturan awal Gulp sedikit lebih rumit daripada
bundleconfig.json
atas, kita sekarang telah memasuki dunia Node dan dapat mulai menggunakan semua alat keren lainnya di sana. Jadi mungkin ada baiknya untuk memulai dengan ini.Kesimpulan
Meskipun ini tiba-tiba menjadi jauh lebih rumit daripada hanya menggunakan Bower, kami juga mendapatkan banyak kendali dengan opsi baru tersebut. Misalnya, sekarang kita dapat memutuskan file apa yang sebenarnya disertakan dalam
wwwroot
folder dan bagaimana tampilannya. Dan kita juga bisa menggunakan ini untuk membuat langkah pertama ke dunia pengembangan sisi klien dengan Node yang setidaknya akan membantu sedikit dengan kurva pembelajaran.sumber
node -v
, dan mendapatkan versi saat ini di sini di nodejs.orgMelihat ini, sepertinya pendekatan LibMan bekerja paling baik untuk kebutuhan saya dengan menambahkan Bootstrap. Saya suka karena sekarang dibangun ke dalam Visual Studio 2017 (15.8 atau yang lebih baru) dan memiliki kotak dialognya sendiri.
Pembaruan 6/11/2020: bootstrap 4.1.3 sekarang ditambahkan secara default dengan VS-2019.5 (Terima kasih kepada Harald S.Hanssen untuk memperhatikan.)
Metode default VS menambahkan ke proyek menggunakan Bower tetapi sepertinya itu sedang keluar. Di header halaman Microsofts bower mereka menulis:
Mengikuti beberapa tautan mengarah ke Gunakan LibMan dengan ASP.NET Core di Visual Studio di mana ini menunjukkan bagaimana libs dapat ditambahkan menggunakan Dialog built-in:
Kemudian untuk bootstrap cukup (1) pilih unpkg, (2) ketik "bootstrap @ .." (3) Install. Setelah ini, Anda hanya ingin memverifikasi semua yang disertakan di _Layout.cshtml atau tempat lain sudah benar. Mereka harus seperti href = "~ / lib / bootstrap / dist / js / bootstrap ..." )
sumber
Coba Libman , sesederhana Bower dan Anda dapat menentukan wwwroot / lib / sebagai folder unduhan.
sumber
Apa triknya bagi saya adalah:
1) Klik kanan pada wwwroot> Add> Client Side Library
2) Ketikkan "bootstrap" di kotak pencarian
3) Pilih "Pilih file tertentu"
4) Gulir ke bawah dan pilih folder. Dalam kasus saya, saya memilih "twitter-bootstrap"
5) Centang "css" dan "js"
6) Klik "Instal".
Beberapa detik kemudian saya memiliki semua folder wwwroot. Lakukan hal yang sama untuk semua paket sisi klien yang ingin Anda tambahkan.
sumber
Libman tampaknya menjadi alat yang disukai oleh Microsoft sekarang. Ini terintegrasi dalam Visual Studio 2017 (15.8).
Artikel ini menjelaskan cara menggunakannya dan bahkan cara menyiapkan pemulihan yang dilakukan oleh proses pembuatan.
Dokumentasi Bootstrap memberi tahu Anda file apa yang Anda butuhkan dalam proyek Anda.
Contoh berikut harus berfungsi sebagai konfigurasi untuk libman.json.
}
sumber
Kami menggunakan bootstrap 4 di inti asp.net tetapi mereferensikan pustaka dari "npm" menggunakan ekstensi "Penginstal Paket" dan menemukan ini lebih baik daripada Nuget untuk pustaka Javascript / CSS.
Kami kemudian menggunakan ekstensi "Bundler & Minifier" untuk menyalin file yang relevan untuk distribusi (dari folder npm node_modules, yang berada di luar proyek) ke dalam wwwroot seperti yang kami inginkan untuk pengembangan / penyebaran.
sumber
Sayangnya, Anda akan kesulitan menggunakan NuGet untuk menginstal Bootstrap (atau kebanyakan kerangka kerja JavaScript / CSS lainnya) pada proyek .NET Core. Jika Anda melihat penginstalan NuGet, ia memberi tahu Anda bahwa itu tidak kompatibel:
jika Anda harus tahu di mana dependensi paket lokal, sekarang mereka ada di direktori profil lokal Anda. yaitu
%userprofile%\.nuget\packages\bootstrap\4.0.0\content\Scripts
.Namun, saya menyarankan untuk beralih ke npm, atau bower - seperti dalam jawaban Saineshwar.
sumber
BS4 sekarang tersedia di .NET Core 2.2 . Pada penginstal SDK 2.2.105 x64 pasti. Saya menjalankan Visual Studio 2017 dengan itu. Sejauh ini bagus untuk proyek aplikasi web baru.
sumber
Mengapa tidak menggunakan CDN saja? Kecuali Anda perlu mengedit kode BS, maka Anda hanya perlu mereferensikan kode di CDN.
Lihat BS 4 CDN Disini:
https://www.w3schools.com/bootstrap4/bootstrap_get_started.asp
Di bagian bawah halaman.
sumber
Gunakan file konfigurasi nmp (tambahkan ke proyek web Anda) lalu tambahkan paket yang diperlukan dengan cara yang sama seperti yang kami lakukan menggunakan bower.json dan simpan. Visual studio akan mengunduh dan menginstalnya. Anda akan menemukan paket tersebut di bawah node nmp proyek Anda.
sumber