2012-12-19 36 views
11

Làm cách nào tôi có thể tích hợp requirej vào ứng dụng sao băng và sử dụng các mô-đun AMD, ví dụ như cho mô-đun Backbone của tôi? Có ai đã làm điều đó và có thể cho tôi biết các bước cần thiết để làm việc này không?Sử dụng Meteor với Requirejs

Trả lời

4

Một câu trả lời đơn giản (mặc dù có thể không phải là câu bạn đang tìm kiếm) là bạn chỉ có thể sử dụng hai cách độc lập. Nói cách khác, hãy tải tất cả các tập lệnh sao băng của bạn, sau đó bắt đầu tải các script yêu cầu. Các script require-ified của bạn sẽ có thể sử dụng các công cụ Meteor tốt, mà không cần phải "import" bất kỳ thứ gì trong nó thông qua bộ tải của Require.

Nếu bạn muốn phải nhập khẩu, bạn nên tạo Yêu cầu "tạm thời" cho nó.

+0

Thời gian qua tôi đã chơi với thiên thạch (v0.4) nó không có yêu cầu/hỗ trợ commonjs. Tôi nghĩ rằng lựa chọn duy nhất thực sự là/là viết trình bao bọc của riêng bạn cho sao băng, hoặc sao chép thủ công các tệp cần thiết vào hệ thống tệp sao băng của bạn. – dsummersl

+0

https://gist.github.com/3922137 fs = __meteor_bootstrap __. Yêu cầu ('fs') – crapthings

+0

@machineghost: Cảm ơn, nghe có vẻ như một cách tiếp cận hợp lý –

0

Đây là cách tôi tải Aloha Editor trong Meteor và IronRouter. Aloha sử dụng requirejs để tải tất cả các phụ thuộc của nó.

  1. Giải nén bản phân phối Aloha theo số công khai/alohaeditor.
  2. Di chuyển tất cả các tệp css Aloha, ngoại trừ aloha-common-extra.css, thành ứng dụng khách/lib/alohaeditor (đừng quên tệp từ thư mục plugin).
  3. Trong tất cả các tệp css Aloha, chuyển đường dẫn tương đối thành đường dẫn tuyệt đối (thay thế tất cả '../' bằng '/ alohaeditor /').
  4. Cài đặt gói wait-on-lib Meteor.
  5. Thêm móc sau vào tuyến đường của bạn:

    onBeforeAction: function(pause) 
        {   
        // Dynamically load require.js 
        var one = IRLibLoader.load('/alohaeditor/lib/require.js', 
         { 
         success: function(){ console.log('Successfully loaded require.js'); }, 
         error: function(){ console.log('Error loading require.js'); } 
         }); 
        if(!one.ready()) 
         return pause(); 
    
        // Aloha settings 
        Aloha = window.Aloha || {}; 
        Aloha.settings = Aloha.settings || {}; 
        Aloha.settings.baseUrl = '/alohaeditor/lib/'; 
        Aloha.settings.plugins = Aloha.settings.plugins || {}; 
        Aloha.settings.plugins.load = 'common/ui, common/format, common/link, common/table, common/list, common/block, common/undo, common/contenthandler, common/paste, common/commands, common/abbr'; 
    
        // Dynamically load aloha.js 
        var two = IRLibLoader.load('/alohaeditor/lib/aloha.js', 
         { 
         success: function(){ console.log('Successfully loaded aloha.js'); }, 
         error: function(){ console.log('Error loading aloha.js'); } 
         }); 
        if(!two.ready()) 
         return pause(); 
        }, 
    
Các vấn đề liên quan