Inti menggunakan CDN adalah lebih cepat , pertama-tama, karena ini adalah jaringan terdistribusi , tetapi kedua, karena file statis sedang di-cache oleh browser dan kemungkinan besar bahwa, misalnya, jquery
perpustakaan CDN di situs Anda penggunaan sudah diunduh oleh browser pengguna, dan karena itu file telah di-cache, dan karena itu tidak ada unduhan yang tidak perlu terjadi. Yang sedang berkata, itu masih merupakan ide bagus untuk memberikan mundur .
Sekarang, titik paket npm bootstrap
adalah bahwa ia menyediakan javascript bootstrap file sebagai modul . Seperti yang telah disebutkan di atas, ini memungkinkan untuk require
menggunakan browserify , yang merupakan kasus penggunaan yang paling mungkin dan, seperti yang saya pahami, alasan utama bootstrap dipublikasikan pada npm.
Bagaimana cara menggunakannya
Bayangkan struktur proyek berikut:
proyek
| - node_modules
| - publik
| | - css
| | - img
| | - js
| | - index.html
| - package.json
Di Anda, index.html
Anda dapat mereferensikan keduanya css
dan js
file seperti ini:
<link rel="stylesheet" href="../node_modules/bootstrap/dist/css/bootstrap.min.css">
<script src="../node_modules/bootstrap/dist/js/bootstrap.min.js"></script>
Yang merupakan cara paling sederhana, dan benar untuk .css
file. Tetapi jauh lebih baik untuk memasukkan bootstrap.js
file seperti ini di suatu tempat di public/js/*.js
file Anda :
var bootstrap = require('bootstrap');
Dan Anda memasukkan kode ini hanya dalam javascript
file - file di mana Anda benar-benar membutuhkan bootstrap.js
. Browserify akan mengurus termasuk file ini untuk Anda.
Sekarang, kekurangannya adalah Anda sekarang memiliki file front-end Anda sebagai node_modules
dependensi, dan node_modules
folder biasanya tidak diperiksa git
. Saya pikir ini adalah bagian yang paling kontroversial, dengan banyak pendapat dan solusi .
UPDATE Maret 2017
Hampir dua tahun telah berlalu sejak saya menulis jawaban ini dan pembaruan telah dilakukan.
Sekarang cara yang diterima secara umum adalah dengan menggunakan bundler seperti webpack (atau bundler pilihan lain) untuk menggabungkan semua aset Anda dalam langkah build.
Pertama, ini memungkinkan Anda untuk menggunakan sintaks commonjs seperti halnya browserify, jadi untuk memasukkan kode bootstrap js dalam proyek Anda, Anda melakukan hal yang sama:
const bootstrap = require('bootstrap');
Adapun css
file, Webpack telah disebut " loader ". Mereka memungkinkan Anda menulis ini dalam kode js Anda:
require('bootstrap/dist/css/bootstrap.css');
dan file css akan "secara ajaib" termasuk dalam build Anda. Mereka akan ditambahkan secara dinamis sebagai <style />
tag saat aplikasi Anda berjalan, tetapi Anda dapat mengonfigurasi webpack untuk mengekspornya sebagai css
file terpisah . Anda dapat membaca lebih lanjut tentang itu di dokumentasi webpack.
Kesimpulannya.
- Anda harus "membundel" kode aplikasi Anda dengan bundler
- Anda tidak boleh melakukan
node_modules
atau file yang dibangun secara dinamis untuk git. Anda dapat menambahkan build
skrip ke npm yang harus digunakan untuk menyebarkan file di server. Bagaimanapun, ini dapat dilakukan dengan berbagai cara tergantung pada proses pembuatan yang Anda inginkan.