2011-10-11 21 views
19

Quando apro console di Chrome 14 e tipo ...funzione require() in JavaScript

require (o require(), se quello che conta)

ottengo: ReferenceError.

Ciò significa che JavaScript non ha quella funzione di default, giusto? Almeno sui browser web.

Perché sto parlando di questo?
Avevo bisogno del parser Markdown per JavaScript.

Cosa fare?
Io, come al solito, ho aperto GitHub e searched per questo. I primi risultati che corrispondono alle mie esigenze sono stati this e this.

Di solito (non sono così bravo con JavaScript) includo lo script che voglio usare prima del mio codice usando il tag <script /> e poi ... beh, usalo. Ma questa volta non si ottiene quello che sta succedendo ... :(

Uso per 1 # script:

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

Uso per # 2 script:

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

Dove viene questo require()? Grazie in un consiglio! :)

risposta

23

E 'un modo per includere node.js pacchetti. Fortunatamente, il primo pacchetto a cui ti sei collegato, markdown-js, è molto intelligente. Controlla se è incluso come pacchetto nodo e, in caso contrario, imposterà l'oggetto markdown su window.markdown. Quindi tutto ciò che devi fare è includere this file in un tag <script> e dovresti essere in grado di utilizzare l'oggetto markdown dall'ambito globale.

4

Dalla pagina si collega a:

Il modo più semplice da usare con CommonJS è:

Sembra require viene da CommonJS

+0

È inoltre possibile creare moduli CommonJS/Node.js per browser con Webmake - https://github.com/medikoo/modules-webmake. Ricorda che i moduli da porting, non dovrebbero dipendere dai moduli nativi di Node.js (come 'fs' o' path'), se è il caso, devi shim quei moduli nativi per Browser (ci sono già alcuni shim disponibile su Github). –