Tìm thêm thông tin Fro m PhantomJS
Phiên bản tiếp theo của PhantomJS (có lẽ nó sẽ là 1.9.8, bất cứ điều gì xảy ra sau khi 1.9.7) sẽ lỗi đầu ra như thế này:
SyntaxError: Parse error
http://localhost:9000/scripts/49e8b4f4.vendor.js:8
Vì vậy, đó là hơi ích hơn thông điệp hiện tại .
Thật không may là không có bản dựng hàng đêm cho PhantomJS, do đó, tại thời điểm này, bạn sẽ cần phải biên dịch phiên bản chính của chính bạn nếu bạn muốn dùng thử.
Debugging được rút gọn file
Nếu bạn đang làm việc với một file được rút gọn, thường là số dòng sẽ không thể rất hữu ích, và thường gỡ lỗi tập tin un-minified sẽ không cung cấp cho bạn các lỗi phân tích cú pháp.
Để giải quyết này, một khi bạn nhận được phantomjs để cung cấp cho bạn tên của tập tin, bạn có thể sử dụng online demo of Esprima để có được một phân tích thực tế của mã JavaScript của bạn:
http://esprima.org/demo/parse.html
Từ đó, bạn có thể nhập các ngắt dòng chiến lược để tách biệt lỗi thực tế.
cụ Lint là Sub-tối ưu cho use-case này
Một công cụ lint như JSLint hoặc jshint có nhiều khăng khăng hơn một phân tích cú pháp thực, vì vậy nếu bạn đang tìm kiếm một lỗi cú pháp rất cụ thể, tôi sẽ khuyên bạn nên sử dụng trình phân tích cú pháp thực, vì nó sẽ chỉ kiểm tra tính hợp lệ của mã và không phải là nguyên tắc tạo kiểu được đề xuất. Tôi không ngụ ý các công cụ lint không có giá trị, chỉ là chúng sẽ không hữu ích để giải quyết loại vấn đề này.
Đây là cách nhanh chóng và thông minh để chạy kiểm tra cú pháp cục bộ trên các tệp js. Tôi tìm thấy điều này nhanh hơn nhiều so với các công cụ trực tuyến, cộng với nó là không có ý kiến. Nhược điểm là cần nút, nhưng tôi nghi ngờ hầu hết các devs ảo sẽ có nút cài đặt. – danmux
Điều gì sẽ xảy ra nếu nút gặp một số cửa sổ chung? Hoặc nếu phantom, chạy .. chromium? là một phiên bản khác với Node? Đó là ok cho một số trường hợp cơ bản tôi đoán –
công thức của tôi trên tất cả các makefiles: 'tìm src/js/-name \ * js -exec node \ {\} \; 2> & 1 | grep -B 5 Cú phápError || exit 0 && exit 1; 'nó sẽ thất bại Thực hiện quy tắc nếu có bất kỳ lỗi cú pháp nào và hiển thị cho bạn dòng nơi nó xảy ra. – gcb