2011-09-05 33 views
7

tôi chạy tôi ưu hoa như thế nàyTrong RequireJs, làm cách nào để hướng dẫn trình tối ưu hóa tạo ra các tên tệp băm đầu ra?

sudo /usr/local/bin/node /tmp/r.j/r.js -o name=main out=test.js baseUrl=. 

cho thử nghiệm
Bây giờ, làm thế nào để nói cho tôi ưu để sản xuất các tên tập tin như một hash của nội dung (rõ ràng là để thiết lập max hết hạn) và sau đó đổi tên phụ thuộc vào yêu cầu có liên quan?

Một tình huống ví dụ sẽ là một cái gì đó như thế này

require({ 
     baseUrl: '{{ STATIC_URL }}js', 
     paths: { 
      jquery: 'https://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min', 
      jqueryui: 'http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.12/jquery-ui.min' 
     } 
    }, ['order!jquery','order!jqueryui','order!main']); 

requirejs nên kéo một cái gì đó giống như 13KUJAW78M.js

Dựa trên Miller Medeiros’s suggestion Tôi đang lên kế hoạch để đặt tất cả các yêu cầu cuộc gọi vào một tập tin tổng thể duy nhất. Điều này cũng có nghĩa là tất cả các cuộc gọi như vậy cũng cần được tối ưu hóa.

ví dụ

switch(document.location.pathName){ 
     case '/foo': 
      require(['sections/foo/main']); 
      break; 
     case '/foo/bar': 
      require(['sections/foo/main', 'core/bar']); 
      break; 
     default: 
      require('sections/home'); 
    } 

yêu cầu ([ 'phần/foo/main']);

nên được tối ưu hóa thành tệp băm.

Ai đó có thể trợ giúp?

Trả lời

4

Trình tối ưu hóa RequireJS không có tùy chọn này, nhưng bạn có thể đổi tên tệp và sử dụng paths config để đặt bí danh cho các tệp được đổi tên, xem this thread để biết thêm thông tin.

Ví dụ: nếu bạn đổi tên tệp thành: 'sections/foo/main.123QWERT.js', 'sections/home.4567ASDFG.js', 'core/bar.0284ZXCV.js' bạn có thể chỉ cần thêm cấu hình đường dẫn như sau:

require.config({ 
    paths : { 
    //alias to new files without JS extension 
    'core/bar': 'core/bar.0284ZXCV', 
    'sections/home' : 'sections/home.4567ASDFG', 
    'sections/foo/main' : 'sections/foo/main.123QWERT' 
    } 
}); 

Cấu hình đường dẫn phải nằm trên tệp sẽ không được lưu vào bộ nhớ cache, có thể chỉ giữ cấu hình trên HTML.

+0

Trình tối ưu hóa có thêm mã băm hay tôi sẽ phải thực hiện một số phép thuật kịch bản + regex để thay thế tên tệp không? –

+0

Cũng có thể chính được nén cùng với các tập tin khác hoặc nó nên được riêng biệt –

+0

RequireJS optimizer wont thêm băm, bạn sẽ cần phải tạo nó bằng tay (hoặc sử dụng một số công cụ mà tôi không biết) và vượt qua các đường dẫn config khi một mô-đun yêu cầu "lõi/thanh", nó sẽ tải tệp "core/bar.HASH_VALUE.js" thay thế. Tùy thuộc vào thiết lập của bạn, bạn không cần phải tạo băm cho nhiều tệp. chính có thể được nén cùng với các tệp khác. –

Các vấn đề liên quan