2012-10-31 12 views
8

के साथ गैर amd मॉड्यूल लोड हो रहा है वर्तमान में मैं एक मजेदार साइड प्रोजेक्ट के लिए require.js का उपयोग कर रहा हूं, मैं काम कर रहा हूं सबकुछ ठीक काम कर रहा है सिवाय इसके अलावा prism.js नामक कोड सिंटैक्स higlighting प्लगइन को छोड़कर। मैं देख सकता हूं कि प्लगइन क्रोम में नेटवर्क टैब के माध्यम से खींचा जा रहा है, लेकिन प्लगइन प्रारंभ नहीं हो रहा है।requ.js

मुझे यकीन नहीं है कि यह एक आवश्यकता की समस्या है या यूएफ प्लगइन मुद्दा है और कोई सोच सकता है कि कोई मदद कर सकता है या नहीं।

require.config({ 
    // 3rd party script alias names 
    paths: { 
    // Core Libraries 
    modernizr: "libs/modernizr", 
    jquery: "libs/jquery", 
    underscore: "libs/lodash", 
    backbone: "libs/backbone", 
    handlebars: "libs/handlebars", 

    text: "libs/text", 
    prism: "plugins/prism", 

    templates: "../templates" 
    }, 
    // Sets the configuration for your third party scripts that are not AMD compatible 
    shim: { 
    "backbone": { 
     "deps": ["underscore", "jquery", "handlebars"], 
     "exports": "Backbone" //attaches "Backbone" to the window object 
    } 
    } 
}); 

// Include Specific JavaScript 
require(['prism', 'modernizr', 'jquery', 'backbone', 'routers/router', 'views/AppVIew' ], 
    function(Prism, Modernizr, $, Backbone, Router, App) { 
    this.router = new Router(); 
    this.App = new App(); 
    } 
); 

उत्तर

10

बदलें शिम अनुभाग चश्मे शामिल करने के लिए, और सुनिश्चित करें कि यह निर्यात करता है "प्रिज्म":

shim: { 
    "backbone": { 
     "deps": ["underscore", "jquery", "handlebars"], 
     "exports": "Backbone" //attaches "Backbone" to the window object 
    }, 
    "prism": { 
     "exports": "Prism" 
    } 
} 
+0

एक बार यह "shimmed" है, मैं इसका उपयोग कैसे कर सकता हूं? –

+2

किसी अन्य मॉड्यूल की तरह: 'आवश्यकता (' प्रिज्म '); या इसे' परिभाषित 'करने के लिए तर्कों में निर्भरता के रूप में शामिल करें। –

1

प्रिज्म भी shim में जोड़ा जाना चाहिए:

यहाँ मेरी main.js पर एक नज़र है। बस रीढ़ की हड्डी के रूप में यह एएमडी अनुपालन नहीं है और इसलिए उसी तरह घोषित किया जाना चाहिए।

+0

, भले ही प्लग कोई निर्भरता है? – Lawrence

+0

हां मेरा बुरा, मुझे लगता है कि इसे "प्लगइन" कहकर आप एक 'jquery' प्लगइन' और यह jquery पर निर्भर करता है। – yakxxx

3

Handlebars और प्रिज्म एएमडी (asyncronous मॉड्यूल परिभाषा) साथ संगत नहीं हैं तो आप शिम करने की जरूरत है यह अपने आप नीचे की तरह;

requirejs.config({ 
    shim: { 
     'backbone': { 
      "deps": ["underscore", "jquery", "handlebars"], 
      "exports": "Backbone" //attaches "Backbone" to the window object 
     }, 
     'handlebars': { 
      "exports": 'Handlebars' 
     }, 
     'prism': { 
      "exports": "Prism" 
     } 
    } 
}); 

आप requ.js शिम दस्तावेज़ साइट को देखना चाहते हैं; http://requirejs.org/docs/api.html#config-shim

आशा इस में मदद मिलेगी

संबंधित मुद्दे