2011-10-11 15 views
19

Kiedy otworzyć konsolę Chrome 14 i typ ...Wymagają funkcji() w JavaScript

require (lub require(), jeśli to ma znaczenie)

uzyskać: ReferenceError.

Oznacza to, że JavaScript nie posiada tej funkcji domyślnie, prawda? Przynajmniej w przeglądarkach internetowych.

Dlaczego mówię o tym?
Potrzebowałem analizatora składni Markdown dla JavaScript.

Co robić?
I, jak zwykle, otworzyłem dla niego GitHub i searched. Pierwsze wyniki, które pasowały do ​​moich potrzeb, to: this i this.

Zwykle (nie jestem tak dobry w JavaScript) Dołączam skrypt, który chcę użyć przed moim kodem przy użyciu tagu <script />, a następnie ... dobrze - użyj go. Ale tym razem nie rozumiem, co się dzieje ... :(

Wykorzystanie na # 1 Scenariusz:

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

Wykorzystanie dla # 2 Scenariusz:

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

Gdzie czy to require() pochodzi? Dzięki za radę! :)

Odpowiedz

23

To sposób na to node.js pakiety. Na szczęście pierwszy pakiet, z którym się łączyłeś, markdown-js, jest bardzo inteligentny. Sprawdza, czy jest on dołączony jako pakiet węzłów, a jeśli nie, ustawi obiekt przeceny na window.markdown. Wszystko, co musisz zrobić, to this file w znaczniku <script> i powinieneś móc używać obiektu markdown z zasięgu globalnego.

4

Ze strony link do:

Prosty sposób używać go z CommonJS jest:

Wygląda require pochodzi z CommonJS

+0

można również zapakować moduły CommonJS/node.js dla przeglądarki z Webmake - https://github.com/medikoo/modules-webmake. Umysł jednak, że moduły mają być przeniesione, nie powinno zależeć od node.js modułów rodzimych (jak 'fs' lub' path'), jeśli jest to sprawa, trzeba pasowana tych natywnych modułów dla przeglądarki (istnieje już kilka podkładek dostępne na Github). –