2015-06-26 24 views
8

Tôi đang sử dụng IntelliJ 14.1.4 để tạo ứng dụng JavaScript. Để gỡ lỗi, tôi kích hoạt một máy chủ web bằng cách sử dụng Gulp. Sau đó, tôi sẽ gỡ lỗi JavaScript và kết nối với Chrome (thông qua plugin). Tôi có thể gỡ lỗi JavaScript "bình thường" theo cách này nhưng khi sử dụng bản đồ nguồn (do trình duyệt tạo), IntelliJ không kích hoạt các điểm ngắt nữa. Nếu tôi sử dụng công cụ gỡ lỗi của Chrome, mọi thứ sẽ hoạt động như mong đợi nhưng IntelliJ dường như không thể dịch điểm ngắt của nó.Bật gỡ lỗi JavaScript bằng IntelliJ và bản đồ nguồn

Có cách nào để thực hiện công việc này không? Tôi đã dành khá nhiều thời gian nghiên cứu vấn đề và theo như tôi hiểu, IntelliJ hỗ trợ bản đồ nguồn. Ngoài ra, tôi cũng có thể gỡ lỗi JavaScript do GWT tạo ra bằng cách sử dụng phương pháp này sử dụng bản đồ nguồn.

Cập nhật: Có vẻ như có current issue for this problem. Nếu bất kỳ workarround là biết, tôi rất vui khi nghe một giải pháp.


Câu trả lời dưới đây giải quyết được vấn đề. Sau đây là cách để tôi thiết lập ngụm build của tôi:

bundler.bundle() 
    .pipe(exorcist('./build/bundle.js.map', null, null, '../src')) 

với ./build là xây dựng thư mục của tôi và ../src là thư mục gốc của file nguồn JavaScript, liên quan đến việc xây dựng thư mục.

+1

điều này không hiệu quả đối với tôi. Nếu tôi đã kiểm tra thẻ tập lệnh trong trình gỡ lỗi trong webstorm, nó sẽ hiển thị các tập lệnh và các url được thấy ở đó thực sự cũng hoạt động trong trình duyệt. ('.bundle(). pipe (exorcist ('./ dist/bundle.js.map', null,"/src ",". "))' là cuộc gọi của tôi). Nhưng các điểm ngắt không bao giờ trúng. Tôi sử dụng máy chủ nội bộ từ WebStorm. – thst

Trả lời

2

Cách giải quyết hiện tại là sử dụng exorcist để tạo bản đồ nguồn bên ngoài. Bạn có thể đặt đường dẫn cơ sở để đánh giá đường dẫn từ tham số -b, thông tin khác trong tài liệu của chúng.

Như một ví dụ, đây là những gì cuộc gọi của tôi để watchify trông giống như:

bin/watchify -d -v -p [tsify --target es5] -t debowerify js/tests/karma/**/*.ts -o 'bin/exorcist -b "js/compiled/" js/compiled/tests.js.map > js/compiled/tests.js' 

Hãy nhận biết rằng plugin và biến đổi có thể ra đường dẫn lạ khi cấp nước tập trung với nhau; nếu sourcemaps của bạn không hoạt động, hãy chắc chắn browserify hoặc watchify đầu ra đường dẫn đúng cách. Tôi đã từng duyệt trình duyệt "../../js/tests/karma/unit/js/tests/karma/unit/Calculator.spec.ts" thay vì "../../js/tests/karma/unit/Calculator.spec.ts", khiến bản đồ của tôi trở nên vô dụng.

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