2012-05-21 28 views
9

Tôi đã sử dụng cấu hình xây dựng tùy chỉnh bên dưới (1.7) để xây dựng thư mục phát hành của mình.Xây dựng tùy chỉnh Dojo 1.7 - Cách xóa các tệp không sử dụng khỏi thư mục phát hành

var profile = { 
basePath: "..", 
action: "release", 
cssOptimize: "comments", 
mini: true, 
optimize: "closure", 
layerOptimize: "closure", 
stripConsole: "all", 
selectorEngine: "acme", 
packages:[ 
    { 
     name: "dojo", 
     location: "./../../dojo" 
    }, 

    { 
     name: "dijit", 
     location: "./../../dijit" 
    }, 

    { 
     name: "dojox", 
     location: "./../../dojox" 
    } 
], 

layers: { 
    "dojo/dojo": { 
     include: [ 
          "dojo/dojo", 
          "dijit/form/Button", 
          "dojox/form/TimeSpinner" 
        ], 
     customBase: true, 
     boot: true 
    } 
}, 

resourceTags: { 
    amd: function (filename, mid) { 
     return /\.js$/.test(filename); 
    } 
} }; 

Trong ứng dụng web của tôi, tôi chỉ sử dụng hai thành phần, một là nút từ gói 'dijit' và một là TimeSpinner từ 'dojox'. Vì vậy, tôi đã đưa hai thành phần này vào tệp 'dojo/dojo.js', nó hoạt động như tôi đã mong đợi.

Nhưng thư mục phát hành chứa thư mục 'dojo', 'dijit' và 'dojox' với nhiều tệp.

Hầu hết các thành phần không được sử dụng trong ứng dụng web của tôi, nhưng các tệp của chúng đều có trong thư mục phát hành. Mặc dù chúng sẽ không được tải vào trình duyệt (vì AMD), tôi không muốn có các tệp như vậy trong thư mục phát hành của mình.

Không cần thiết phải duy trì số lượng tệp khổng lồ như vậy trong phiên bản lật đổ của tôi.

Vì vậy, câu hỏi của tôi là dưới đây:

  1. Làm thế nào để gỡ bỏ những file' .uncompressed.js' từ thư mục phát hành?
  2. Cách xóa tệp, CSS, mẫu các thành phần không được sử dụng khỏi thư mục phát hành?

Xin hãy giúp tôi ...

Trả lời

2

Các võ đường xây dựng tiện ích không có nghĩa là để tách một tập hợp con của tập tin và không có cấu hình cho việc này.

Trình tạo công cụ tạo nén, nó bao bọc các mô-đun kế thừa vào các khai báo kiểu amd và nó kết hợp các lớp trong thời gian tải mô-đun được lưu trong bộ nhớ cache.

Điều này có nghĩa là khi bạn tạo lớp dojo/dojo, customBase (đây là cài đặt nâng cao btw, cẩn thận với mức sử dụng) - một cây phụ thuộc được tạo. Cây phụ thuộc là danh sách các tệp mà mỗi tệp được nén và nối với nhau tương tự như sau;

// file: dojo/dojo.js 
declare(
    {cache: 
    { 
     "moduleDep_1": dojo.cache("moduleDep_1", {}), 
     "moduleDep_2": dojo.cache("modu...", ..) 
    }, "dojo/dojo", null, { 

    dojo/dojo here 

}); 

Điều gì sẽ xảy ra nếu khách truy cập của bạn có phụ thuộc cơ sở mà bạn đã bỏ quên?

Dù sao, tiện ích xây dựng cũ hơn có chức năng dependencyList không có mặt ở tiện ích 1.7 build. Điều này sẽ được 'lưu' bạn :)

Nếu bạn chắc chắn 100% rằng tệp duy nhất cần là tệp lớp của bạn - tại sao không chỉ cần tải tệp đó lên webhotel của bạn?

4

Bạn có thể thêm các dòng sau vào dưới cùng của build.sh

find . -type f -name '*.uncompressed.js' -print0 | xargs -0 rm -rdf 

find . -type f -name '*.consoleStripped.js' -print0 | xargs -0 rm -rdf 
+0

này không trả lời câu hỏi 2. –

+2

Trong tĩnh mạch tương tự tôi đã sử dụng 'find. -name \ *. uncompressed.js -type f -delete' –

+0

Nó có hoạt động với build.bat (windows) không? –

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