2013-03-06 8 views
14

का उपयोग कर का उपयोग करके मैं RequireJS को अनुकूलित करने का प्रयास कर रहा हूं।ग्रंट requjs 'परिभाषित अपरिभाषित है'

समस्या यह है कि मेरा कोड इसे अनुकूलित करने से पहले ठीक काम करता है, और फिर इसे अनुकूलित करने के बाद, कंसोल पर यह Uncaught ReferenceError: define is not defined कहता है।

यहाँ Gruntfile.js

module.exports = function (grunt) { 
    grunt.loadNpmTasks('grunt-contrib-requirejs'); 

    grunt.initConfig({ 
    requirejs: { 
     compile : { 
      options : { 
       name : 'main', 
       baseUrl : ".", 
       mainConfigFile : "./main.js", 
       out : "./optimized.js", 
       preserveLicenseComments: false 
      } 
     } 
} 
    }) 

    grunt.registerTask('default', 'requirejs'); 

} 
+0

कैसे करें आप संकलित फ़ाइल लोड का उपयोग करें:

आधिकारिक जवाब यहाँ देखें? चूंकि 'परिभाषित' एक आवश्यकता है जो कार्य करता है ऐसा लगता है कि आप आवश्यकताएँ लोड करने में चूक जाते हैं। –

+0

हां, ऐसा इसलिए था क्योंकि 'requjs' शामिल नहीं है। एक बार जब मैं इसे लोड करता हूं, तो कोई त्रुटि नहीं होती है। –

+1

ठीक है इसे एक उत्तर के रूप में भी जोड़ देगा। –

उत्तर

8

define के रूप में एक requireJs ढंग से काम ऐसा लगता है आप requireJs या किसी अन्य एएमडी लोडर लोड करने के लिए याद आती है है। यदि आपको किसी अन्य एएमडी मॉड्यूल को लोड करने की आवश्यकता नहीं है तो आप एक बार अनुपालन करते हैं, आप almond जैसे हल्के वजन लोडर शिम का उपयोग कर सकते हैं।

-1

ऐसा लगता है कि grunt-contrib-requjs डिफ़ॉल्ट रूप से requjs संकलित नहीं करता है। आप वापस आवश्यकताएं फिर से जोड़ने के लिए कॉन्सट का उपयोग कर सकते हैं।

concat : { 
    dist : { 
    src : ['./optimized.js', 'path/to/requirejs.js'], 
    dest : './optimized.js' 
    }, 
} 

grunt.loadNpmTasks('grunt-contrib-concat'); 
12

"शामिल" विकल्प के रूप में require.js फ़ाइल को जोड़ना चाहिए।

requirejs: { 
    compile : { 
     options : { 
      name : 'main', 
      baseUrl : ".", 
      mainConfigFile : "./main.js", 
      out : "./optimized.js", 
      preserveLicenseComments: false, 
      include: ['path/to/require.js'] 
     } 
    } 
} 
+1

मुझे एक समान समस्या है, लेकिन क्या यह सिर्फ आउटपुट में requjs जोड़ नहीं होगा? ऐसा लगता है कि यह अनुकूलक के माध्यम से चला जाता है। – hybrid9

+0

हां, यह आउटपुट में RequJS जोड़ता है। यह समस्या का एक आसान समाधान है, लेकिन मिनी स्क्रिप्ट में एक छोटे एएमडी लोडर का उपयोग करके (स्वीकृत उत्तर देखें) अधिक आदर्श होगा। –

0

जैसा कि अपेक्षित-स्क्रिप्ट गायब होने से पहले बताया गया है।

requirejs: { 
    compile: { 
    options: { 
     baseUrl: "src/js", 
     mainConfigFile: 'src/js/require.config.js', 
     paths: { 
     requireLib: "vendor/require/require" 
     }, 
     include: "requireLib", 
     name: "require.config", 
     out: "dist/js/bundle.js" 
    } 
    } 
}, 

का निरीक्षण करें विकल्प रास्तों और शामिल, उन की आवश्यकता के लिए महत्वपूर्ण हैं:

इस तरह आधिकारिक requirejs-पेज पता चलता है कि आप यह कर (मेरी gruntfile से फट) है परिभाषित किया जाना। बस अपनी requ.js-file के लिए आवश्यक लाइब-विकल्प को इंगित करें। http://requirejs.org/docs/optimization.html#onejs

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