CDN kullanmanın amacı , her şeyden önce daha hızlı olmasıdır , çünkü dağıtılmış bir ağdır, ancak ikincisi, statik dosyalar tarayıcılar tarafından önbelleğe alınır ve örneğin, jquerysitenizin CDN'nin kütüphanesi olan olasılıkları yüksektir. kullanımları kullanıcının tarayıcısı tarafından zaten indirilmişti ve bu nedenle dosya önbelleğe alınmıştı ve bu nedenle gereksiz bir indirme gerçekleşmiyor. Bununla birlikte, bir geri dönüş sağlamak hala iyi bir fikirdir .
Şimdi, bootstrap'ın npm paketinin noktası
modül olarak bootstrap'ın javascript dosyasını sağlamasıdır . Yukarıda belirtildiği gibi olup, bu mümkün hale getirir onu kullanarak browserify Anladığım kadarıyla, bootstrap temel nedeni NPM yayımlanmasına, büyük olasılıkla kullanım durumunda olan ve.require
Bu nasıl kullanılır
Aşağıdaki proje yapısını düşünün:
proje
| - düğüm_modülleri
| - kamu
| | - css
| | - img
| | - js
| | - index.html
| - package.json
Gözlerinde farklı index.htmlhem referans verebilir cssve jsbu gibi dosyaları:
<link rel="stylesheet" href="../node_modules/bootstrap/dist/css/bootstrap.min.css">
<script src="../node_modules/bootstrap/dist/js/bootstrap.min.js"></script>
Hangi en basit yol ve .cssdosyalar için doğru . Ancak bootstrap.jsdosyayı böyle bir yere public/js/*.jsdosyalarınıza eklemek çok daha iyidir :
var bootstrap = require('bootstrap');
Ve bu kodu yalnızca javascriptgerçekten ihtiyacınız olan dosyalara eklersiniz bootstrap.js. Browserify bu dosyayı sizin için ekler.
Şimdi dezavantaj, artık ön uç dosyalarınızı node_modulesbağımlılık olarak görmeniz ve node_modulesklasörün genellikle teslim edilmemesi git. Bence bu, birçok fikir ve çözümle en tartışmalı kısım .
GÜNCELLEME Mart 2017
Bu cevabı yazdığımdan beri yaklaşık iki yıl geçti ve bir güncelleme var.
Şimdi genel olarak kabul edilen yol, tüm öğelerinizi oluşturma adımında paketlemek için webpack (veya seçtiğiniz başka bir paketleyici) gibi bir paketleyici kullanmaktır .
İlk olarak, browserify gibi commonjs sözdizimini kullanmanıza izin verir, böylece projenize bootstrap js kodunu dahil etmek için aynı şeyi yaparsınız:
const bootstrap = require('bootstrap');
cssDosyalara gelince , webpack " yükleyiciler " olarak adlandırılmıştır . Bunu js kodunuza yazmanıza izin verir:
require('bootstrap/dist/css/bootstrap.css');
ve css dosyaları derlemenize "sihirli bir şekilde" dahil edilecektir. <style />Uygulamanız çalıştığında dinamik olarak etiket olarak eklenirler , ancak web paketini ayrı bir cssdosya olarak dışa aktarmak için yapılandırabilirsiniz . Bununla ilgili daha fazla bilgiyi webpack'in belgelerinde okuyabilirsiniz.
Sonuç olarak.
- Uygulama kodunuzu bir paketleyiciyle "paketlemelisiniz"
node_modulesGit için ne dinamik olarak oluşturulmuş dosyaları işlememelisiniz . buildNpm'ye dosyaları sunucuya dağıtmak için kullanılması gereken bir komut dosyası ekleyebilirsiniz . Her neyse, bu tercih ettiğiniz derleme işlemine bağlı olarak farklı şekillerde yapılabilir.