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, jqueryperpustakaan 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 requiremenggunakan 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.htmlAnda dapat mereferensikan keduanya cssdan jsfile 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 .cssfile. Tetapi jauh lebih baik untuk memasukkan bootstrap.jsfile seperti ini di suatu tempat di public/js/*.jsfile Anda :
var bootstrap = require('bootstrap');
Dan Anda memasukkan kode ini hanya dalam javascriptfile - 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_modulesdependensi, dan node_modulesfolder 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 cssfile, 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 cssfile 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_modulesatau file yang dibangun secara dinamis untuk git. Anda dapat menambahkan buildskrip ke npm yang harus digunakan untuk menyebarkan file di server. Bagaimanapun, ini dapat dilakukan dengan berbagai cara tergantung pada proses pembuatan yang Anda inginkan.