2015-04-19 19 views
28

Có cách nào để sử dụng ES6 và các mô-đun với PhantomJS không?Cách sử dụng ES6 với PhantomJS

Tôi có thể transpile mỗi tệp từ ES6 sang ES5 bằng Babel, nhưng nó khó xử lý cây song song (một trong ES6 và ES5 khác) và ghi nhập để yêu cầu mô-đun ES5. Tôi đang tìm một giải pháp sạch hơn.

Tôi có thể xóa tất cả mã nhập và xuất, nối các mô-đun với nhau, chuyển kết quả thành một tệp, sau đó chạy qua PhantomJS, nhưng tôi muốn sử dụng nhập và xuất nếu có thể.

Tôi đã thử sử dụng Browserify với biến đổi babelify để chuyển cây phụ thuộc ES6 thành một tệp ES5 duy nhất, nhưng Browserify không thể tìm thấy các mô-đun PhantomJS được cung cấp như webpage. Tôi đã cố gắng bỏ qua những mô-đun bằng cách đặt trong package.json tôi:

"browser": { 
    "webpage": false 
} 

nhưng nhập khẩu webpage trả về một đối tượng rỗng thay vì các mô-đun PhantomJS.

Có cách nào sạch để sử dụng các mô-đun ES6 với PhantomJS không?

+0

Khi bạn nói trình duyệt không thể tìm thấy các mô-đun được cung cấp bởi PhantomJS như 'trang web', bạn có nghĩa là browserify đang cố gắng biên dịch các mô-đun đó khi bạn không muốn chúng hoặc bạn muốn các mô-đun đó được biên dịch và chúng bị bỏ qua ? –

+0

Tôi cần 'yêu cầu ('trang web')', khiến cho Browserify cũng tìm kiếm một mô-đun nút được gọi là 'trang web'. Nó ném một lỗi mà nó không thể được tìm thấy. Tôi không cần các mô-đun được biên dịch. – exupero

Trả lời

2

Tùy chọn của Browserify là --exclude thực hiện những gì tôi cần.

browserify --exclude webpage -t babelify script.js --outfile compiled.js 
phantomjs compiled.js 

Điều đó loại trừ webpage khỏi cây phụ thuộc nhưng để nguyên vị trí nhập.

+15

Tôi không biết tại sao câu trả lời này lại là câu hỏi. Có, nó giải quyết các tính năng ES6 còn thiếu trong PhantomJS tạm thời. Tuy nhiên, đây không phải là giải pháp nếu bạn muốn chạy các tính năng ES6 "thực" mà không cần phải transpiling chúng trước. – dude

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