SORU
9 Temmuz 2012, PAZARTESİ


Nasıl Raylar Varlık Boru hattı derleme işlemi hızlandırabilir misin?

Raylar Varlık Boru hattı derleme sürecini hızlandırma yöntemleri nelerdir?

CEVAP
9 Temmuz 2012, PAZARTESİ


1. Capistrano dağıtım hızlanma

(1) kullanmak capistrano yerleşik görev '/varlıklar' dağıtmak. dağıtmak

Capistrano kendi dahili görev '/aktif görev'. Sizin için otomatik olarak görev yapacak.

Kendi el sanatları görev arasındaki fark sadece yük assets grup varlıklar, tüm çevre değil, derleme.

cd /home/apps/APP_NAME/releases/20120708184757 && bundle exec rake RAILS_ENV=production RAILS_GROUPS=assets assets:precompile

(2) derleme işlemi varlıklar değişmez zaman atlayın.

https://gist.github.com/3072362

Eğer

  • /varlıklar uygulaması
  • varlıklar/lib
  • satıcı/varlıklar
  • Gemfile.kilit
  • /yollar confir.rb

değiştirilir, varlıklarını yeniden. Aksi takdirde, pecompile işlemi atlar, çok zaman tasarrufu.

2. Kullanın @import dikkatle.

(1) kaçının doğrudan @import "compass"; kullanarak.

Hem sen ne zaman işe yarayacak

@import "compass"; veya SCSS @import "compass/typography/links/link-colors";.

Ama @import "compass/typography/links/link-colors"; varlıklar derlerken 9 kat daha hızlı @import "compass"; daha.

@import "compass";, pusula varlıklar derleme tüm zaman çünkü. *13 bölüm sadece.

(2) önlemek parçaları kullanarak

SCSS, partial varlıklarımızı organize etmek istiyoruz.

Ama eğer değişkenler, ya da gerekli bağımlılıklar vardır, aksi halde paylaşmak gerekir

//= require "reset"
//= require "base"
//= require "product"

daha hızlı

@import "reset";
@import "base";
@import "product";

3. gerekmez .scss & .sebepsiz yere kahve

(1) önlemek require_tree kullanarak

Kullandığımızda jeneratör denetleyicileri oluşturmak için Raylar. Raylar da varlıklar bunu beğendi oluşturur

  • ürün.css.scss
  • ürün.js.kahve

ve application.js bu tekniği kullanarak: varlıklar monte edin

//= require_tree

Ama sadece bu satırları içeren boş varlıklar (çıkış yok):

# Place all the behaviors and hooks related to the matching controller here.
# All this logic will automatically be available in application.js.
# You can use CoffeeScript in this file: http://jashkenas.github.com/coffee-script/

Onları görebilmek için her konuda 250ms mal olacak. Eğer 10 boş bir varlık varsa, 2.5 saniye sürer .

Projenizin bunları kaldırmak, ya da onları bu şekilde: application.js tek tek monte edin

//= require prodcuts
//= require users
//= require albums

(2) css.scss kullanmayın ya da gereksiz olursa js.coffee.

  • Jquery-ui-1.8.16 derlenmiş.özel.(0ms) (pıd 19108) css
  • Bir WordPress kullanmak derlenmiş.uı.1.8.16.yani.(0ms) (pıd 19108) css
  • Derlenmiş jquery.js (5 ms) (pıd 19108)
  • Derlenmiş jquery_ujs.js (0ms) (pıd 19108)
  • Özel derlenmiş.(14ms) (pıd 19108) css

custom.css custom.css.scss

CSS ve JS saf saf hızlı ( neredeyse 0 ms maliyeti) derleme. Ama derleme .scss ve .kahve hala biraz zamana mal oldu.

Özetlemek

  1. dağıtmak yerine.rb varlıkları görev.
  2. kontrol/üretim kaydeder.günlük

    • yavaş varlıkları bulmak
    • @import Kaldır""; alternatif çözüm kullanın. pusula
    • kullanmak yerine gerektirir @alma; ( gerçekten gerekli olduğunda @import kullanın )
    • require_tree, mount varlıkları tek tek kaldırın
    • boş Kaldır .scss ve .coffeescript
    • kullanın .varlıkların saf olduğunda css CSS.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Chilla Frilla™

    Chilla Frill

    7 Aralık 2006
  • LiquidMusick

    LiquidMusick

    23 Aralık 2010
  • TSE

    TSE

    12 Kasım 2012