2011-10-11 5 views
19

में समारोह जब मैं क्रोम 14 और प्रकार के कंसोल खोलें ...आवश्यकता होती है() जावास्क्रिप्ट

require (या require(), कि अगर मायने रखती है)

मैं: ReferenceError

इसका मतलब है कि जावास्क्रिप्ट में डिफ़ॉल्ट रूप से यह फ़ंक्शन नहीं है, है ना? कम से कम वेब ब्राउज़र पर।

मैं इसके बारे में क्यों बात कर रहा हूं?
मुझे जावास्क्रिप्ट के लिए मार्कडाउन पार्सर की आवश्यकता थी।

क्या करना है?
मैं, आमतौर पर, गिटहब और searched खोला गया। मेरी ज़रूरतों से मेल खाने वाले पहले परिणाम this और this थे।

आमतौर पर (मैं जावास्क्रिप्ट के साथ अच्छा नहीं हूं) मैं स्क्रिप्ट शामिल करता हूं जो मैं <script /> टैग का उपयोग करके अपने कोड से पहले उपयोग करना चाहता हूं और फिर ... इसका उपयोग करें।

var marked = require('marked'); 
console.log(marked('i am using __markdown__.')); 

कहाँ: # 2 स्क्रिप्ट के लिए

var input = "# Heading\n\nParagraph"; 
var output = require("markdown").toHTML(input); 
print(output); 

उपयोग: लेकिन इस बार मैं # 1 स्क्रिप्ट के लिए नहीं मिलता है क्या हो रहा है ... :(

प्रयोग क्या require() आया था? एक सलाह में धन्यवाद! :)

उत्तर

23

आता है की तरह यह एक तरह से node.js संकुल शामिल करने के लिए है। सौभाग्य से, आपके द्वारा लिंक किया गया पहला पैकेज, markdown-js, बहुत स्मार्ट है। यह जांचता है कि इसे नोड पैकेज के रूप में शामिल किया गया है, और यदि नहीं, तो मार्कडाउन ऑब्जेक्ट को window.markdown पर सेट कर देगा। तो आपको बस this file<script> टैग में शामिल करना है और आप वैश्विक दायरे से markdown ऑब्जेक्ट का उपयोग करने में सक्षम होना चाहिए।

4

पृष्ठ से आप लिंक करते हैं:

CommonJS के साथ उपयोग करने के लिए सरल तरीका है:

लगता require से CommonJS

+0

आप वेबमेक के साथ ब्राउज़र के लिए CommonJS/Node.js मॉड्यूल भी पैक कर सकते हैं - https://github.com/medikoo/modules-webmake। दिमाग हालांकि मॉड्यूल को पोर्ट किया जाना चाहिए, नोड.जेएस देशी मॉड्यूल (जैसे 'एफएस' या' पथ') पर निर्भर नहीं होना चाहिए, यदि यह मामला है, तो आपको ब्राउज़र के लिए उन देशी मॉड्यूल को तैरने की आवश्यकता है (पहले से ही कुछ शिम हैं गीथूब पर उपलब्ध)। –