2013-09-25 1 views
11

Könnten Sie npm-Module verwenden, indem Sie require() in phantomJS verwenden? Es scheint in der Lage zu sein, Javascript-Dateien zu laden, also ist das vielleicht möglich?phantomjs: Wie npm-Module in Phantomjs zu verwenden?

+1

Haben Sie versucht, genau das zu tun, was Sie gesagt haben? Vielleicht wärst du angenehm überrascht. –

+0

kann ich ein Beispiel finden? es lädt nicht das npm-Modul für mich. – KJW

+0

Ich habe gerade versucht, npm-Module mit 'require' zu ​​importieren. Kannst du mir ein Codebeispiel von dem geben, was du ausprobiert hast? –

Antwort

16

Das hängt vollständig von dem Modul nodejs ab. Es wird nicht funktionieren, wenn NodeJS Modul eine gewisse Unterstützung durch native Funktion Schnittstelle erfordert. (NPM-Module wie http, socket.io wird auf PhantomJS nicht funktionieren, weil sie auf native Schnittstellen Abhängige)

reine JavaScript NodeJS Module sollten auch auf phantomjs arbeiten.

+0

Zum Beispiel ist Kreide nicht verwendbar, weil sie vom Prozessmodul abhängt. –

+1

Können Sie ein Beispiel geben, richtig, wie man Knotenmodul in phantomjs injiziert? Die Antwort liegt auf der Hand, wie es funktioniert, benötigt oder injiziert wird? – Firanolfind

4

fyi, Phantomjs hat eine Annäherung an commonjs.

Sie können nicht amd Module in PhantomJS verwenden, und ich weiß nicht, jeder amd Lader (wie requirejs), die

Update (2015) in PhantomJS funktioniert: Ich habe Commonjs Module in Verwendung PhantomJs 1.x und 2.x, sie funktionieren gut mit einem Vorbehalt: Sie können Source-Mapping nicht verwenden (am Ende der Datei sieht es aus wie //# sourceMappingURL=index.js.map), da es den PhantomJs-Modullader fehlschlagen wird. Andernfalls werden commonjs-Module normal geladen.

+0

Der sourceMappingUrl-Kommentar wurde ebenfalls rückgängig gemacht. Danke für den Tipp! – Tyson