2014-04-16 9 views
8

Ho installato casperjs per la prima volta e ho eseguito gli script di esempio. Il primo script di esempio (javascript) funzionava senza incidenti. Poi ho provato a fare funzionare un campione coffescript, che io preferisco, e ha ricevuto il seguente errore:casperjs Impossibile eseguire gli script CoffeeScript

Unable to load script test.coffee; check file syntax

ho cercato una risposta e la soluzione nell'unica related issue non ha funzionato per me. Sono stato in grado di compilare CoffeeScript (test.coffee) in JavaScript (test.js) e quindi eseguire il JavaScript compilato, ancora una volta, senza indecenza.

Ho cercato di rintracciare l'errore cercando il messaggio di errore nei file casperjs. Ho trovato il messaggio di errore alla fine del file ~/.node/lib/node_modules/casperjs/bin/bootstrap.js dove passa il controllo a phantomjs. Ho creato un semplice CoffeeScript: test_phantomjs.coffee:

console.log "hello phantomjs" 
phantom.exit() 

e corse lo script (phantomjs test_phantomjs.coffee) con il seguente risultato:

Can't open 'test_phantomjs.coffee'

A questo punto sono a perdita. Il problema è più di un inconveniente che altro da quando la compilazione in JavaScript risolve il problema. La loro cosa mi manca?

+0

Hai mai risolto questo? Sto incontrando lo stesso problema. Ho notato che il mio script funziona su OSX ma non su Ubuntu. – patrickgamer

+0

Aveva questo stesso problema su Phantom 1.9.0. Risolto con un aggiornamento alla versione più recente di phantomjs (1.9.8 al momento della scrittura). – maxko87

risposta

0

Lavori per me. Puoi pubblicare la tua versione e piattaforma PhantomJS?

miniera su Mac OS X:

$ phantomjs -v 
1.9.8 

Proprio funziona:

$ phantomjs test_phantomjs.coffee 
hello phantomjs 
1

(disclaimer: sono/ero parte del team di contribuzione) il suppo Il rt di coffee script in CasperJS dipende dalla versione di phantomJ che stai usando perché questo è phantomjs che fornisce un supporto per gli script di caffè fuori dagli schemi.

È anche possibile utilizzare e installare slimerjs (https://slimerjs.org) che, dal mio punto di vista, è più performante di phantomjs e supporta script coffeescript.

Mickaël

0

Come altri dire, PhantomJS v2.x non supporta più CoffeeScript.

Pertanto, ora si hanno 2 opzioni per eseguire PhantomJS con CoffeeScript:

  • Run pianura *.coffee file con PhantomJS v1.9.8
  • Compile *.coffee file da *.js, ed eseguire *.js con PhantomJS v2.x

vi consiglio il modo in cui questi ultimi up-to-date, e questo è il modo package.json assomiglia:

{ 
    "scripts": { 
     "pretest": "npm install && coffee --compile **/*.coffee", 
     "test": "casperjs test --fail-fast script/*.js", 
     "watch": "coffee --watch --compile **/*.coffee" 
    } 
} 

vedere più in dettaglio in ymkjp/phantomjs2x_coffee_sample.

Btw, ecco come installare PhantomJS v1.9.8 su Ubuntu.

$ sudo apt-get update 
$ sudo apt-get install build-essential g++ flex bison gperf ruby perl \ 
    libsqlite3-dev libfontconfig1-dev libicu-dev libfreetype6 libssl-dev \ 
    libpng-dev libjpeg-dev python libx11-dev libxext-dev git 
$ cd ~ 
$ wget -O- https://github.com/ariya/phantomjs/archive/1.9.8.tar.gz | tar zxvf - 
$ cd ~/phantomjs-1.9.8 
$ bash build.sh # It takes 30 min or so (Up to your host machine) 
$ sudo ln -s ~/phantomjs-1.9.8/bin/phantomjs /usr/local/bin 
$ phantomjs --version 
1.9.8 

Cheers.

+0

Vorrei raccomandare di aggiungere un'attività di controllo come questa "' '" watch ":" coffee -o js/-cw src/"' '' –