2015-08-19 29 views
8

Bir web sitesi oluştururken (açıklık amacıyla bir HTML/JS sadece web sitesi), daha sonra bir build/ klasörüne yerleştirilen bazı dosyaları derlemek ve sıkıştırmak için gulp kullanırım.Üretim sunucusunda gulp nasıl dağıtılır

klasör yapısı şöyle görünür:

├── assets 
│   ├── images 
│   ├── javascripts 
│   │   └── app.js 
│   └── stylesheets 
│    └── style.scss 
├── bower.json 
├── build 
│   ├── bower_components 
│   ├── images 
│   ├── index.html 
│   ├── scripts.min.js 
│   └── styles.min.css 
├── gulpfile.js 
├── index.html 
├── node_modules 
│   ├── gulp-module-1 
│   └── gulp-module-2 
├── package.json 
└── README 

Bir git repo Bu dosyaların tümünü, benim tüm değişiklikleri iki kez işlencek eklerseniz. Yani: assets/stylesheets/style.scss'daki bir değişiklik de build/styles.min.css'da bir değişikliğe yol açacaktır. Ancak, depodan build/ klasörünü hariç tutmaya karar verirsek, üretim sunucusunda belirli geliştirme araçlarına (yani, gulp, npm, vb.) Gereksiniminiz olacaktır. Bu, üretim sunucusunda sınırlı ayrıcalıklar olduğunda bazen zor olabilir. Derlenmiş dosyalarınızın kaynağını kaybedeceğinizden, assets/ klasörünü dışarıda bırakmak bir seçenek değildir. Bu nedenle sorum şu: Bir üretim sunucusunda bunu dağıtmak için en iyi uygulama hangisi olarak değerlendiriliyor? Repo'ya build/ klasörünü dahil edermisiniz, build/ klasörünü üretim sunucusunda mı derliyorsunuz yoksa üçüncü bir çözüm var mı?

cevap

7

Herkes bu sorunun en iyi çözümünün ne olduğu konusunda hemfikir olmasa da, özlediğiniz üçüncü bir çözüm olduğunu ve genellikle tercih edeceğimi düşünüyorum. Geliştirme makinenizdeki tüm dosyaları oluşturabilir ve ardından üretim sunucunuza oluşturulan dosyaları dağıtabilirsiniz. Bu genellikle sadece bir kopya eylemi olur.

Bu şekilde sunucunuzda herhangi bir geliştirme aracınızın olması gerekmez ve sürüm denetim sisteminizde oluşturma çıktınız olmayacaktır.

+0

Cevabınız için teşekkür ederiz. Bu konuda da olsa ve basit bir çözüm gibi görünüyor. Ancak, diğer git tabanlı çözümler olup olmadığını merak ediyordum. Sonra, yeni sürümü otomatik olarak çekmek için Bitbucket'in web kancaları gibi işlevleri kullanabileceğim. Bunu kullanmadan bunu yapmanın başka yolları olduğunu biliyorum, ama sadece merak ediyorum. – Diederik

+0

@Diederik Ben, Git'i kullanarak dağıtmak istediğiniz her durumda, özgün sorunlarınızdan birinin tanımına göre çalışacağını düşünüyorum. –

+0

Bunu bir buçuk yıl sonra tekrar ziyaret ederek, bunu doğru cevap olarak işaretleyeceğim. Bunun en kolay çözüm olduğu kanıtlandı. Projelerimde genellikle "dağıt" komutuna sahibim, ki bu da "rsync" yi dist/'üretim sunucusuna gönderir. – Diederik