2014-04-16 16 views
8

Tôi đã cài đặt casperjs lần đầu tiên và chạy tập lệnh mẫu. Kịch bản mẫu đầu tiên (javascript) chạy mà không có sự cố. Sau đó, tôi đã cố gắng chạy một mẫu coffescript, mà tôi thích, và nhận được lỗi sau:casperjs không thể chạy tập lệnh CoffeeScript

Unable to load script test.coffee; check file syntax

tôi đã tìm kiếm một câu trả lời và giải pháp trong chỉ related issue không làm việc cho tôi. Tôi đã có thể biên dịch CoffeeScript (test.coffee) thành JavaScript (test.js) và sau đó chạy JavaScript được biên dịch, một lần nữa, mà không có sự không đứng đắn.

Tôi đã cố gắng theo dõi lỗi bằng cách tìm kiếm thông báo lỗi trong tệp casperjs. Tôi đã tìm thấy thông báo lỗi ở cuối tệp ~/.node/lib/node_modules/casperjs/bin/bootstrap.js, nơi nó chuyển quyền kiểm soát tới các phantomj. Tôi tạo ra đơn giản một CoffeeScript: test_phantomjs.coffee:

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

và chạy kịch bản (phantomjs test_phantomjs.coffee) với kết quả như sau:

Can't open 'test_phantomjs.coffee'

Tại thời điểm này tôi đang ở mất mát. Vấn đề là nhiều bất tiện hơn bất cứ điều gì kể từ khi biên dịch thành JavaScript giải quyết vấn đề. Là cái gì của họ tôi đang mất tích?

+0

Bạn đã bao giờ giải quyết vấn đề này chưa? Tôi đang chạy vào cùng một vấn đề. Tôi nhận thấy rằng kịch bản của tôi hoạt động trên OSX nhưng không hoạt động trên Ubuntu. – patrickgamer

+0

Có cùng sự cố này trên Phantom 1.9.0. Giải quyết với một bản cập nhật cho phiên bản mới nhất của phantomjs (1.9.8 tại thời điểm viết). – maxko87

Trả lời

0

Làm việc cho tôi. Bạn có thể đăng phiên bản và nền tảng PhantomJS của mình không?

Mine trên Mac OS X:

$ phantomjs -v 
1.9.8 

Chỉ hoạt động:

$ phantomjs test_phantomjs.coffee 
hello phantomjs 
1

(từ chối trách nhiệm: Tôi/là một phần của đội ngũ đóng góp) suppo rt của kịch bản cà phê trong CasperJS phụ thuộc vào phiên bản của phantomJs bạn đang sử dụng bởi vì đây là phantomjs cung cấp hỗ trợ kịch bản cà phê ra khỏi hộp.

Bạn cũng có thể sử dụng và cài đặt slimerjs (https://slimerjs.org) trong đó - từ quan điểm của tôi - có hiệu suất cao hơn các phantomj và hỗ trợ các tập lệnh coffeescript.

Mickaël

0

Như những người khác nói, PhantomJS v2.x không còn hỗ trợ CoffeeScript nữa.

Vì vậy, bây giờ bạn có 2 lựa chọn để chạy PhantomJS với CoffeeScript:

  • Run đồng bằng *.coffee file với PhantomJS v1.9.8
  • Compile *.coffee file *.js, và chạy *.js với PhantomJS v2.x

Tôi khuyên bạn nên sau này up-to-date bằng cách nào, và đây là cách package.json trông giống như:

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

Xem chi tiết hơn tại ymkjp/phantomjs2x_coffee_sample.

Btw, đây là cách cài đặt PhantomJS v1.9.8 trên 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 

Chúc mừng.

+0

Tôi khuyên bạn nên thêm tác vụ xem như thế này "' "" watch ":" coffee -o js/-cw src/"' '' –

Các vấn đề liên quan