it-swarm.com.de

Warnung: PhantomJS nicht gefunden

Ich habe nodejs 0.10.15 auf Debian 6 installiert. Mit npm habe ich dann Folgendes installiert:

Sudo npm install grunt-cli -g

Ich habe auch npm install in meinem lokalen Testverzeichnis ausgeführt (das Herunterladen der erforderlichen Abhängigkeiten in das Verzeichnis node_modules), das die folgende package.json-Datei enthält:

{
  "name": "sample-name",
  "version": "1.4.0",
  "devDependencies": {
    "grunt": "~0.4.1",
    "grunt-contrib-qunit": ">0.0.0",
    "grunt-qunit-istanbul": ">0.0.0"
  }
}

hier ist die Ausgabe bei der Installation von Phantomjs:

...
Writing location.js file
Done. Phantomjs binary available at /home/myuser/Test/node_modules/grunt-contrib-qunit/node_modules/grunt-lib-phantomjs/node_modules/phantomjs/lib/phantom/bin/phantomjs
Done. Phantomjs binary available at /home/myuser/Test/node_modules/grunt-qunit-istanbul/node_modules/grunt-lib-phantomjs-istanbul/node_modules/phantomjs/lib/phantom/bin/phantomjs
[email protected] node_modules/grunt
├── [email protected]
...

Wenn ich grunt test aus dem Testverzeichnis starte, bekomme ich:

Running PhantomJS...ERROR
>> In order for this task to work properly, PhantomJS must be installed locally
>> via NPM. If you're seeing this message, generally that means the NPM install
>> has failed. Please submit an issue providing as much detail as possible at:
>> https://github.com/gruntjs/grunt-lib-phantomjs/issues
Warning: PhantomJS not found. Use --force to continue.

Wenn ich das am zuvor angegebenen Speicherort installierte phantomjs-Skript ausführe, geschieht nichts, ich bekomme jedoch den Beendigungscode 127 (was auf das Problem PATH hinweist: http://tldp.org/LDP/abs/html/exitcodes.html ). Wenn ich das phantomjs-bash-Skript verstehe, sieht es so aus:

#!/usr/bin/env node

var path = require('path')
var spawn = require('child_process').spawn

var binPath = require(path.join(__dirname, '..', 'lib', 'phantomjs')).path

var args = process.argv.slice(2)

// For Node 0.6 compatibility, pipe the streams manually, instead of using
// `{ stdio: 'inherit' }`.
var cp = spawn(binPath, args)
cp.stdout.pipe(process.stdout)
cp.stderr.pipe(process.stderr)
cp.on('exit', process.exit)

process.on('SIGTERM', function() {
  cp.kill('SIGTERM')
  process.exit(1)
})

Nach meinem Verständnis bedeutet dies, dass Phantomjs im Knoten ausgeführt werden. Wenn ich den Knoten starte, gebe den Pfad var ein, den ich bekomme:

:~$ env node
> var path = require('path')
undefined
> 

(Ich verstehe das Standardverhalten: node.js zeigt "undefined" auf der Konsole an )

Irgendwelche Vorschläge, um dieses Problem weiter zu debuggen?

12
so12345

Versuchen Sie zu laufen 

npm uninstall phantomjs

dann rennen

npm install phantomjs -g

Dies sollte sicherstellen, dass Phantom mit der Befehlszeile installiert wird, sodass Grunt es verwenden kann, und sollte auch sicherstellen, dass es sauber installiert wurde.

26
Brandon Anzaldi

Versuchen Sie es mit npm install grunt-mocha -D

Weitere Informationen finden Sie unter https://github.com/gruntjs/grunt-lib-phantomjs/issues/22

3
Chevdor

Führen Sie in Ihrem Terminal Folgendes aus:

npm install [email protected] --ignore-scripts
1
jack