In einem PhantomJS-Skript möchte ich ein benutzerdefiniertes Modul laden, aber es scheint, relative Pfade funktionieren nicht in PhantomJS?PhantomJS require() ein relativer Pfad
script.js:
var foo = require('./script/lib/foo.js');
foo.bar('hello world');
phantom.exit();
foo.js:
exports.bar = function(text){
console.log(text);
}
- Nach fs.workingDirectory ich im guten Verzeichnis bin
- foo.js ist nicht in der Lookup Weg des Phantomjs
Am Ich vermisse etwas?
EDIT:
inject() ist nicht Revelant weil ich kein JS zu einer HTML-Seite injizieren muß, sondern mein eigenes Modul laden, wie erforderlich (‚fs‘), aber mit einem relativen Pfad.
Inject wird verwendet, um eine .js-Datei in die Headless-Seite zu injizieren. Ich benutze es, um eine jquery.js in eine bestimmte Seite zu injizieren. Ich muss mein eigenes Modul laden, wie ich es mit request ('fs') gemacht habe. Aber ich würde gerne einen relativen Pfad wie in NodeJS verwenden –
So scheint phantom.injectJs() für meinen einfachen Fall zu arbeiten. Die Zieldatei sollte kein Modul sein. Es scheint, es gibt eine Diskussion über die ML. –