Tên javascript

Trình chỉnh sửa Visual Studio Code có hỗ trợ gỡ lỗi tích hợp cho Nút. js và có thể gỡ lỗi JavaScript, TypeScript và nhiều ngôn ngữ khác được dịch sang JavaScript. Thiết lập một dự án cho Node. gỡ lỗi js rất đơn giản với Mã VS cung cấp các đoạn mã và mặc định cấu hình khởi chạy phù hợp

Có một số cách bạn có thể gỡ lỗi Node của mình. các chương trình js trong Mã VS

  • Sử dụng tính năng tự động đính kèm vào các quy trình gỡ lỗi mà bạn chạy trong thiết bị đầu cuối tích hợp của VS Code
  • Sử dụng thiết bị đầu cuối gỡ lỗi JavaScript, tương tự như sử dụng thiết bị đầu cuối tích hợp
  • Sử dụng cấu hình khởi chạy để bắt đầu chương trình của bạn hoặc đính kèm vào quy trình được khởi chạy bên ngoài Mã VS

Tự động đính kèm

Nếu tính năng Tự động đính kèm được bật, trình gỡ lỗi Nút sẽ tự động đính kèm vào một số Nút nhất định. js đã được khởi chạy từ Thiết bị đầu cuối tích hợp của Mã VS. Để bật tính năng này, hãy sử dụng lệnh Toggle Auto Attach từ Command Palette ( ⇧⌘P (Windows, Linux Ctrl+Shift+P)) or, if it's already activated, use the Auto Attach Status bar item.

Có ba chế độ để đính kèm tự động mà bạn có thể chọn trong phần Chọn nhanh kết quả và thông qua gỡ lỗi. jav. cài đặt autoAttachFilter

  • [
      '!**/node_modules/**',
      '**/$KNOWN_TOOLS$/**',
      '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
      '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
    ];
    
    8 (mặc định) - Nếu bạn thực thi tập lệnh bên ngoài thư mục
    [
      '!**/node_modules/**',
      '**/$KNOWN_TOOLS$/**',
      '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
      '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
    ];
    
    9 của mình hoặc sử dụng tập lệnh 'người chạy' phổ biến như mocha hoặc ts-node, quy trình sẽ được gỡ lỗi. Bạn có thể định cấu hình danh sách cho phép tập lệnh 'người chạy' bằng cách sử dụng cài đặt Mẫu thông minh tự động đính kèm (
    "debug.javascript.terminalOptions": {
      "skipFiles": [
        "/**"
      ]
    },
    
    0)
  • "debug.javascript.terminalOptions": {
      "skipFiles": [
        "/**"
      ]
    },
    
    1 - Tất cả nút. js được khởi chạy trong Thiết bị đầu cuối tích hợp sẽ được sửa lỗi
  • "debug.javascript.terminalOptions": {
      "skipFiles": [
        "/**"
      ]
    },
    
    2 - Chỉ các quy trình được khởi chạy với cờ
    "debug.javascript.terminalOptions": {
      "skipFiles": [
        "/**"
      ]
    },
    
    3 hoặc
    "debug.javascript.terminalOptions": {
      "skipFiles": [
        "/**"
      ]
    },
    
    4 mới được gỡ lỗi

Sau khi bật Tự động đính kèm, bạn sẽ cần khởi động lại thiết bị đầu cuối của mình. Điều này có thể được thực hiện bằng cách nhấp vào biểu tượng ⚠ ở trên cùng bên phải của thiết bị đầu cuối hoặc chỉ cần tạo một biểu tượng mới. Sau đó, trình gỡ lỗi sẽ đính kèm vào chương trình của bạn trong vòng một giây

Tên javascript

Khi bật tự động đính kèm, mục

"debug.javascript.terminalOptions": {
  "skipFiles": [
    "/**"
  ]
},
5 sẽ xuất hiện trên thanh trạng thái ở cuối cửa sổ Mã VS. Nhấn vào nó cho phép bạn thay đổi chế độ tự động đính kèm hoặc tạm thời tắt nó đi. Việc tạm thời tắt tự động đính kèm sẽ hữu ích nếu bạn đang chạy một số chương trình dùng một lần mà bạn không cần gỡ lỗi, nhưng bạn không muốn tắt hoàn toàn tính năng này

Cấu hình bổ sung

Thuộc tính cấu hình khởi chạy khác

Bạn có thể áp dụng các thuộc tính khác thường thấy khi khởi chạy. json để tự động đính kèm trong gỡ lỗi. jav. thiết lập terminalOptions. Ví dụ: để thêm phần bên trong nút vào SkipFiles của bạn, bạn có thể thêm phần sau vào cài đặt người dùng hoặc không gian làm việc của mình

________số 8

Tự động đính kèm các mẫu thông minh

Trong chế độ Tự động đính kèm của

[
  '!**/node_modules/**',
  '**/$KNOWN_TOOLS$/**',
  '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
  '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
];
8, Mã VS sẽ cố gắng đính kèm vào mã của bạn và không đính kèm vào các công cụ xây dựng mà bạn không quan tâm đến việc gỡ lỗi. Nó thực hiện điều này bằng cách khớp tập lệnh chính với danh sách các mẫu toàn cầu. Các mẫu toàn cầu có thể định cấu hình trong gỡ lỗi. jav. cài đặt autoAttachSmartPattern, mặc định là

[
  '!**/node_modules/**',
  '**/$KNOWN_TOOLS$/**',
  '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
  '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
];
0

"debug.javascript.terminalOptions": {
  "skipFiles": [
    "/**"
  ]
},
7 được thay thế bằng một danh sách 'người chạy mã' phổ biến, chẳng hạn như
"debug.javascript.terminalOptions": {
  "skipFiles": [
    "/**"
  ]
},
8,
"debug.javascript.terminalOptions": {
  "skipFiles": [
    "/**"
  ]
},
9,
[
  '!**/node_modules/**',
  '**/$KNOWN_TOOLS$/**',
  '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
  '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
];
40, v.v. Bạn có thể sửa đổi danh sách này nếu các cài đặt này không hoạt động. Ví dụ: để loại trừ
"debug.javascript.terminalOptions": {
  "skipFiles": [
    "/**"
  ]
},
9 và bao gồm
[
  '!**/node_modules/**',
  '**/$KNOWN_TOOLS$/**',
  '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
  '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
];
42, bạn có thể thêm hai dòng

[
  '!**/node_modules/**',
  '**/$KNOWN_TOOLS$/**',
  '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
  '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
];

Thiết bị đầu cuối gỡ lỗi JavaScript

Theo cách tương tự để tự động đính kèm, JavaScript Debug Terminal sẽ tự động gỡ lỗi bất kỳ Nút nào. js mà bạn chạy trong đó. Bạn có thể tạo Debug Terminal bằng cách chạy Debug. Tạo lệnh đầu cuối Gỡ lỗi JavaScript từ Bảng lệnh (

[
  '!**/node_modules/**',
  '**/$KNOWN_TOOLS$/**',
  '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
  '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
];
43) hoặc bằng cách chọn Tạo đầu cuối gỡ lỗi JavaScript từ menu thả xuống của trình chuyển đổi đầu cuối

Tên javascript

Cấu hình bổ sung

Thuộc tính cấu hình khởi chạy khác

Bạn có thể áp dụng các thuộc tính khác thường thấy khi khởi chạy. json vào thiết bị đầu cuối gỡ lỗi trong gỡ lỗi. jav. thiết lập terminalOptions. Ví dụ: để thêm phần bên trong nút vào SkipFiles của bạn, bạn có thể thêm phần sau vào cài đặt người dùng hoặc không gian làm việc của mình

"debug.javascript.terminalOptions": {
  "skipFiles": [
    "/**"
  ]
},

Khởi chạy cấu hình

Cấu hình khởi chạy là cách truyền thống để thiết lập gỡ lỗi trong Mã VS và cung cấp cho bạn nhiều tùy chọn cấu hình nhất để chạy các ứng dụng phức tạp

Trong phần này, chúng ta sẽ đi vào chi tiết hơn về các cấu hình và tính năng cho các tình huống gỡ lỗi nâng cao hơn. Bạn sẽ tìm thấy hướng dẫn gỡ lỗi bằng bản đồ nguồn, chuyển qua mã bên ngoài, thực hiện gỡ lỗi từ xa, v.v.

Nếu bạn muốn xem video giới thiệu, hãy xem Bắt đầu với Node. gỡ lỗi js

Ghi chú. Nếu bạn mới bắt đầu với Mã VS, bạn có thể tìm hiểu về các tính năng sửa lỗi chung và tạo tệp cấu hình

[
  '!**/node_modules/**',
  '**/$KNOWN_TOOLS$/**',
  '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
  '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
];
44 trong chủ đề Gỡ lỗi

Khởi chạy các thuộc tính cấu hình

Cấu hình gỡ lỗi được lưu trữ trong tệp

[
  '!**/node_modules/**',
  '**/$KNOWN_TOOLS$/**',
  '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
  '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
];
44 nằm trong thư mục
[
  '!**/node_modules/**',
  '**/$KNOWN_TOOLS$/**',
  '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
  '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
];
46 của không gian làm việc của bạn. Phần giới thiệu về việc tạo và sử dụng các tệp cấu hình gỡ lỗi có trong bài viết Gỡ lỗi chung

Dưới đây là tài liệu tham khảo về các thuộc tính chung của

[
  '!**/node_modules/**',
  '**/$KNOWN_TOOLS$/**',
  '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
  '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
];
44 dành riêng cho Nút. trình gỡ lỗi js. Bạn có thể xem bộ tùy chọn đầy đủ trong tài liệu tùy chọn vscode-js-debug

Các thuộc tính sau được hỗ trợ trong các cấu hình khởi chạy loại

[
  '!**/node_modules/**',
  '**/$KNOWN_TOOLS$/**',
  '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
  '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
];
48 và
[
  '!**/node_modules/**',
  '**/$KNOWN_TOOLS$/**',
  '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
  '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
];
49

  • "debug.javascript.terminalOptions": {
      "skipFiles": [
        "/**"
      ]
    },
    
    60 - mảng các mẫu hình cầu để định vị các tệp JavaScript được tạo. Xem phần Bản đồ nguồn
  • "debug.javascript.terminalOptions": {
      "skipFiles": [
        "/**"
      ]
    },
    
    61 - một mảng các mẫu hình cầu cho các vị trí nơi bản đồ nguồn sẽ được phân tích cú pháp. Xem phần Bản đồ nguồn
  • "debug.javascript.terminalOptions": {
      "skipFiles": [
        "/**"
      ]
    },
    
    62 - khi bắt đầu lại một phiên, hãy bỏ cuộc sau số mili giây này. Xem phần Gắn vào nút. js
  • "debug.javascript.terminalOptions": {
      "skipFiles": [
        "/**"
      ]
    },
    
    63 - nghỉ ngay khi chương trình ra mắt
  • "debug.javascript.terminalOptions": {
      "skipFiles": [
        "/**"
      ]
    },
    
    64 - Thư mục gốc của VS Code. Xem phần Gỡ lỗi từ xa bên dưới
  • "debug.javascript.terminalOptions": {
      "skipFiles": [
        "/**"
      ]
    },
    
    65 - Thư mục gốc của nút. Xem phần Gỡ lỗi từ xa bên dưới
  • "debug.javascript.terminalOptions": {
      "skipFiles": [
        "/**"
      ]
    },
    
    66- cố gắng tự động chuyển mã không ánh xạ tới tệp nguồn. Xem phần Bước chân thông minh
  • "debug.javascript.terminalOptions": {
      "skipFiles": [
        "/**"
      ]
    },
    
    67 - tự động bỏ qua các tệp được bao phủ bởi các mẫu hình cầu này. Xem phần Bỏ qua mã không thú vị
  • "debug.javascript.terminalOptions": {
      "skipFiles": [
        "/**"
      ]
    },
    
    68 - bật đầu ra chẩn đoán

Các thuộc tính này chỉ khả dụng cho cấu hình khởi chạy của loại yêu cầu

[
  '!**/node_modules/**',
  '**/$KNOWN_TOOLS$/**',
  '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
  '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
];
48

  • "debug.javascript.terminalOptions": {
      "skipFiles": [
        "/**"
      ]
    },
    
    60 - một đường dẫn tuyệt đối đến Node. chương trình js để gỡ lỗi
  • "debug.javascript.terminalOptions": {
      "skipFiles": [
        "/**"
      ]
    },
    
    61 - đối số được chuyển đến chương trình để gỡ lỗi. Thuộc tính này thuộc kiểu mảng và mong đợi các đối số riêng lẻ dưới dạng các phần tử mảng
  • "debug.javascript.terminalOptions": {
      "skipFiles": [
        "/**"
      ]
    },
    
    62 - khởi chạy chương trình để gỡ lỗi trong thư mục này
  • "debug.javascript.terminalOptions": {
      "skipFiles": [
        "/**"
      ]
    },
    
    63 - đường dẫn tuyệt đối đến thời gian chạy có thể thực thi được sử dụng. Mặc định là
    "debug.javascript.terminalOptions": {
      "skipFiles": [
        "/**"
      ]
    },
    
    64. Xem phần Khởi chạy hỗ trợ cấu hình cho 'npm' và các công cụ khác
  • "debug.javascript.terminalOptions": {
      "skipFiles": [
        "/**"
      ]
    },
    
    65 - các đối số tùy chọn được truyền cho tệp thực thi thời gian chạy
  • "debug.javascript.terminalOptions": {
      "skipFiles": [
        "/**"
      ]
    },
    
    66 - nếu "nvm" (hoặc "nvm-windows") hoặc "nvs" được sử dụng để quản lý Nút. js, thuộc tính này có thể được sử dụng để chọn một phiên bản Node cụ thể. js. Xem phần Hỗ trợ nhiều phiên bản bên dưới
  • "debug.javascript.terminalOptions": {
      "skipFiles": [
        "/**"
      ]
    },
    
    67 - biến môi trường tùy chọn. Thuộc tính này mong đợi các biến môi trường dưới dạng danh sách các cặp khóa/giá trị được nhập chuỗi
  • "debug.javascript.terminalOptions": {
      "skipFiles": [
        "/**"
      ]
    },
    
    68 - đường dẫn tùy chọn đến tệp chứa định nghĩa biến môi trường. Xem phần Tải biến môi trường từ tệp bên ngoài bên dưới
  • "debug.javascript.terminalOptions": {
      "skipFiles": [
        "/**"
      ]
    },
    
    69 - bảng điều khiển để khởi chạy chương trình (
    "debug.javascript.terminalOptions": {
      "skipFiles": [
        "/**"
      ]
    },
    
    60,
    "debug.javascript.terminalOptions": {
      "skipFiles": [
        "/**"
      ]
    },
    
    61,
    "debug.javascript.terminalOptions": {
      "skipFiles": [
        "/**"
      ]
    },
    
    62). Xem phần Bảng điều khiển nút bên dưới
  • "debug.javascript.terminalOptions": {
      "skipFiles": [
        "/**"
      ]
    },
    
    63 - nếu được đặt thành
    "debug.javascript.terminalOptions": {
      "skipFiles": [
        "/**"
      ]
    },
    
    64, đầu ra từ thiết bị xuất chuẩn/thiết bị xuất chuẩn của quy trình sẽ được hiển thị trong Bảng điều khiển gỡ lỗi, thay vì lắng nghe đầu ra qua cổng gỡ lỗi. Điều này hữu ích cho các chương trình hoặc thư viện nhật ký ghi trực tiếp vào luồng thiết bị xuất chuẩn/thiết bị xuất chuẩn thay vì sử dụng API
    "debug.javascript.terminalOptions": {
      "skipFiles": [
        "/**"
      ]
    },
    
    65

Thuộc tính này chỉ khả dụng cho các cấu hình khởi chạy của loại yêu cầu

[
  '!**/node_modules/**',
  '**/$KNOWN_TOOLS$/**',
  '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
  '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
];
49

  • "debug.javascript.terminalOptions": {
      "skipFiles": [
        "/**"
      ]
    },
    
    67 - khởi động lại kết nối khi chấm dứt. Xem phần Tự động khởi động lại phiên gỡ lỗi
  • "debug.javascript.terminalOptions": {
      "skipFiles": [
        "/**"
      ]
    },
    
    68 - cổng gỡ lỗi để sử dụng. Xem các phần Gắn vào nút. js và gỡ lỗi từ xa
  • "debug.javascript.terminalOptions": {
      "skipFiles": [
        "/**"
      ]
    },
    
    69 - Địa chỉ TCP/IP của cổng gỡ lỗi. Xem các phần Gắn vào nút. js và gỡ lỗi từ xa
  • "debug.javascript.terminalOptions": {
      "skipFiles": [
        "/**"
      ]
    },
    
    60 - trình gỡ lỗi cố gắng đính kèm vào quy trình này sau khi đã gửi tín hiệu USR1. Với cài đặt này, trình gỡ lỗi có thể đính kèm vào một quy trình đang chạy chưa được bắt đầu ở chế độ gỡ lỗi. Khi sử dụng thuộc tính
    "debug.javascript.terminalOptions": {
      "skipFiles": [
        "/**"
      ]
    },
    
    60, cổng gỡ lỗi được xác định tự động dựa trên Nút. js (và giao thức đã sử dụng) và không thể được định cấu hình rõ ràng. Vì vậy, không chỉ định thuộc tính
    "debug.javascript.terminalOptions": {
      "skipFiles": [
        "/**"
      ]
    },
    
    68
  • "debug.javascript.terminalOptions": {
      "skipFiles": [
        "/**"
      ]
    },
    
    63 - có tiếp tục quy trình hay không nếu quy trình bị tạm dừng khi chúng tôi đính kèm. Tùy chọn này hữu ích nếu bạn khởi chạy chương trình của mình với
    "debug.javascript.terminalOptions": {
      "skipFiles": [
        "/**"
      ]
    },
    
    4

Khởi chạy cấu hình cho các tình huống phổ biến

Bạn có thể kích hoạt IntelliSense ( ⌃Space (Windows, Linux Ctrl+Space)) in your

[
  '!**/node_modules/**',
  '**/$KNOWN_TOOLS$/**',
  '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
  '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
];
44 file to see launch configuration snippets for commonly used Node.js debugging scenarios.

Tên javascript

Bạn cũng có thể hiển thị các đoạn mã với Thêm cấu hình. nút ở phía dưới bên phải của cửa sổ soạn thảo

[
  '!**/node_modules/**',
  '**/$KNOWN_TOOLS$/**',
  '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
  '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
];
44

Tên javascript

Đây là những đoạn có sẵn

  • Khởi chạy chương trình. Khởi chạy một nút. chương trình js ở chế độ gỡ lỗi
  • Khởi chạy qua npm. Khởi chạy một nút. js thông qua tập lệnh 'gỡ lỗi' npm. Nếu bạn đã xác định tập lệnh gỡ lỗi npm trong gói của mình. json, bạn có thể sử dụng nó trực tiếp từ cấu hình khởi chạy của mình. Đảm bảo rằng cổng gỡ lỗi được sử dụng trong tập lệnh npm, tương ứng với cổng được chỉ định trong đoạn trích
  • Gắn. Đính kèm vào cổng gỡ lỗi của Nút đang chạy cục bộ. chương trình js. Đảm bảo rằng nút. js để gỡ lỗi đã được bắt đầu ở chế độ gỡ lỗi và cổng gỡ lỗi được sử dụng giống với cổng được chỉ định trong đoạn mã
  • Đính kèm vào chương trình từ xa. Đính kèm vào cổng gỡ lỗi của Nút. js đang chạy trên máy chủ được chỉ định bởi thuộc tính
    "debug.javascript.terminalOptions": {
      "skipFiles": [
        "/**"
      ]
    },
    
    69. Đảm bảo rằng nút. js để gỡ lỗi đã được bắt đầu ở chế độ gỡ lỗi và cổng gỡ lỗi được sử dụng giống với cổng được chỉ định trong đoạn mã. Để giúp VS Code ánh xạ các tệp nguồn giữa không gian làm việc của bạn và hệ thống tệp của máy chủ từ xa, hãy đảm bảo chỉ định đường dẫn chính xác cho các thuộc tính
    "debug.javascript.terminalOptions": {
      "skipFiles": [
        "/**"
      ]
    },
    
    64 và
    "debug.javascript.terminalOptions": {
      "skipFiles": [
        "/**"
      ]
    },
    
    65
  • Đính kèm theo ID tiến trình. Mở bộ chọn quy trình để chọn một nút hoặc quy trình gulp để gỡ lỗi. Với cấu hình khởi chạy này, bạn thậm chí có thể đính kèm vào một quy trình nút hoặc gulp chưa được bắt đầu ở chế độ gỡ lỗi
  • Thiết lập Nodemon. Sử dụng gật đầu để tự động chạy lại phiên gỡ lỗi bất cứ khi nào nguồn JavaScript thay đổi. Đảm bảo rằng bạn đã cài đặt gật đầu trên toàn cầu. Lưu ý rằng việc chấm dứt phiên gỡ lỗi chỉ chấm dứt chương trình để gỡ lỗi, chứ không phải bản thân gật đầu. Để kết thúc gật đầu, nhấn Ctrl+C trong Terminal tích hợp.
  • Bài kiểm tra Mocha. Gỡ lỗi thử nghiệm mocha trong thư mục
    "debug.javascript.terminalOptions": {
      "skipFiles": [
        "/**"
      ]
    },
    
    60 của dự án của bạn. Đảm bảo rằng dự án của bạn đã cài đặt 'mocha' trong thư mục
    [
      '!**/node_modules/**',
      '**/$KNOWN_TOOLS$/**',
      '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
      '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
    ];
    
    9 của nó
  • máy phát điện Yeoman. Gỡ lỗi trình tạo yeoman. Đoạn mã yêu cầu bạn chỉ định tên của trình tạo. Đảm bảo rằng dự án của bạn đã được cài đặt 'yo' trong thư mục
    [
      '!**/node_modules/**',
      '**/$KNOWN_TOOLS$/**',
      '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
      '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
    ];
    
    9 và dự án đã tạo của bạn đã được cài đặt để gỡ lỗi bằng cách chạy
    "debug.javascript.terminalOptions": {
      "skipFiles": [
        "/**"
      ]
    },
    
    63 trong thư mục dự án
  • nhiệm vụ nuốt chửng. Gỡ lỗi tác vụ gulp. Đảm bảo rằng dự án của bạn đã cài đặt 'gulp' trong thư mục
    [
      '!**/node_modules/**',
      '**/$KNOWN_TOOLS$/**',
      '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
      '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
    ];
    
    9 của nó
  • điện tử chính. Gỡ lỗi nút chính. js của một ứng dụng Electron. Đoạn mã giả định rằng tệp thực thi Electron đã được cài đặt bên trong thư mục
    "debug.javascript.terminalOptions": {
      "skipFiles": [
        "/**"
      ]
    },
    
    65 của không gian làm việc

Bảng điều khiển nút

Theo mặc định, Nút. phiên gỡ lỗi js khởi chạy mục tiêu trong Bảng điều khiển gỡ lỗi mã VS nội bộ. Vì Bảng điều khiển gỡ lỗi không hỗ trợ các chương trình cần đọc đầu vào từ bảng điều khiển, nên bạn có thể kích hoạt thiết bị đầu cuối bên ngoài hoặc sử dụng Thiết bị đầu cuối tích hợp mã VS bằng cách đặt thuộc tính

"debug.javascript.terminalOptions": {
  "skipFiles": [
    "/**"
  ]
},
69 trong cấu hình khởi chạy của bạn thành
"debug.javascript.terminalOptions": {
  "skipFiles": [
    "/**"
  ]
},
62 hoặc
"debug.javascript.terminalOptions": {
  "skipFiles": [
    "/**"
  ]
},
61 tương ứng. Mặc định là
"debug.javascript.terminalOptions": {
  "skipFiles": [
    "/**"
  ]
},
60

Nếu sử dụng thiết bị đầu cuối bên ngoài, bạn có thể định cấu hình chương trình thiết bị đầu cuối nào sẽ sử dụng thông qua cài đặt ________ 1000, ________ 1001 và _____ 1002

Khởi chạy hỗ trợ cấu hình cho 'npm' và các công cụ khác

Thay vì khởi chạy Node. js trực tiếp với nút, bạn có thể sử dụng tập lệnh 'npm' hoặc các công cụ chạy tác vụ khác trực tiếp từ cấu hình khởi chạy

  • Bất kỳ chương trình nào có sẵn trên PATH (ví dụ: 'npm', 'mocha', 'gulp', v.v. ) có thể được sử dụng cho thuộc tính
    "debug.javascript.terminalOptions": {
      "skipFiles": [
        "/**"
      ]
    },
    
    63 và các đối số có thể được truyền qua
    "debug.javascript.terminalOptions": {
      "skipFiles": [
        "/**"
      ]
    },
    
    65
  • Bạn không phải đặt thuộc tính
    "debug.javascript.terminalOptions": {
      "skipFiles": [
        "/**"
      ]
    },
    
    60 nếu tập lệnh npm hoặc công cụ khác của bạn chỉ định ngầm định chương trình sẽ khởi chạy

Hãy xem một ví dụ về 'npm'. Ví dụ: nếu

[
  '!**/node_modules/**',
  '**/$KNOWN_TOOLS$/**',
  '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
  '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
];
006 của bạn có tập lệnh 'gỡ lỗi'

[
  '!**/node_modules/**',
  '**/$KNOWN_TOOLS$/**',
  '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
  '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
];
4

cấu hình khởi chạy tương ứng sẽ như thế này

"debug.javascript.terminalOptions": {
  "skipFiles": [
    "/**"
  ]
},
6

Hỗ trợ nhiều phiên bản

Nếu bạn đang sử dụng 'nvm' (hoặc 'nvm-windows') để quản lý Nút của mình. js, có thể chỉ định thuộc tính

"debug.javascript.terminalOptions": {
  "skipFiles": [
    "/**"
  ]
},
66 trong cấu hình khởi chạy để chọn một phiên bản Node cụ thể. js

"debug.javascript.terminalOptions": {
  "skipFiles": [
    "/**"
  ]
},
6

Nếu bạn đang sử dụng 'nvs' để quản lý Nút của mình. js, có thể sử dụng thuộc tính

"debug.javascript.terminalOptions": {
  "skipFiles": [
    "/**"
  ]
},
66 để chọn phiên bản, kiến ​​trúc và hương vị cụ thể của Node. js chẳng hạn

"debug.javascript.terminalOptions": {
  "skipFiles": [
    "/**"
  ]
},
6

Đảm bảo có các Nút đó. js đã cài đặt mà bạn muốn sử dụng với thuộc tính

"debug.javascript.terminalOptions": {
  "skipFiles": [
    "/**"
  ]
},
66, vì tính năng này sẽ không tự động tải xuống và cài đặt phiên bản. Ví dụ: bạn sẽ phải chạy thứ gì đó như
[
  '!**/node_modules/**',
  '**/$KNOWN_TOOLS$/**',
  '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
  '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
];
010 hoặc
[
  '!**/node_modules/**',
  '**/$KNOWN_TOOLS$/**',
  '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
  '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
];
011 từ thiết bị đầu cuối tích hợp nếu bạn định thêm
[
  '!**/node_modules/**',
  '**/$KNOWN_TOOLS$/**',
  '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
  '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
];
012 vào cấu hình khởi chạy của mình

Nếu bạn bỏ qua phiên bản nhỏ và bản vá và có, chẳng hạn như

[
  '!**/node_modules/**',
  '**/$KNOWN_TOOLS$/**',
  '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
  '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
];
013, thì phiên bản
[
  '!**/node_modules/**',
  '**/$KNOWN_TOOLS$/**',
  '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
  '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
];
014 mới nhất được cài đặt trên hệ thống của bạn sẽ được sử dụng

Tải các biến môi trường từ tệp bên ngoài

Trình gỡ lỗi VS Code Node hỗ trợ tải các biến môi trường từ một tệp và chuyển chúng tới Nút. thời gian chạy js. Để sử dụng tính năng này, hãy thêm thuộc tính

"debug.javascript.terminalOptions": {
  "skipFiles": [
    "/**"
  ]
},
68 vào cấu hình khởi chạy của bạn và chỉ định đường dẫn tuyệt đối tới tệp chứa các biến môi trường

"debug.javascript.terminalOptions": {
  "skipFiles": [
    "/**"
  ]
},
6

Bất kỳ biến môi trường nào được chỉ định trong từ điển

"debug.javascript.terminalOptions": {
  "skipFiles": [
    "/**"
  ]
},
67 sẽ ghi đè các biến được tải từ tệp

Đây là một ví dụ về tệp

[
  '!**/node_modules/**',
  '**/$KNOWN_TOOLS$/**',
  '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
  '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
];
017

"debug.javascript.terminalOptions": {
  "skipFiles": [
    "/**"
  ]
},
6

Gắn vào nút. js

Nếu bạn muốn đính kèm trình gỡ lỗi Mã VS vào Nút bên ngoài. chương trình js, khởi chạy Node. js như sau

[
  '!**/node_modules/**',
  '**/$KNOWN_TOOLS$/**',
  '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
  '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
];
00

hoặc nếu chương trình không bắt đầu chạy mà phải đợi trình gỡ lỗi đính kèm

[
  '!**/node_modules/**',
  '**/$KNOWN_TOOLS$/**',
  '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
  '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
];
01

Bây giờ bạn có một số tùy chọn để đính kèm trình gỡ lỗi vào chương trình của mình

  • Mở "bộ chọn quy trình" liệt kê tất cả các quy trình ứng viên tiềm năng và cho phép bạn chọn một hoặc
  • Tạo cấu hình "đính kèm" chỉ định rõ ràng tất cả các tùy chọn cấu hình rồi nhấn F5

Hãy đi qua các tùy chọn này một cách chi tiết

Đính kèm với hành động Quy trình nút

Lệnh Đính kèm quy trình nút từ Bảng lệnh ( ⇧⌘P (Windows, Linux . trình gỡ lỗi js. )) opens a Quick Pick menu that lists all potential processes that are available to the Node.js debugger:

Tên javascript

Các quy trình riêng lẻ được liệt kê trong bộ chọn hiển thị cổng gỡ lỗi và ID quy trình. Sau khi bạn chọn Nút của mình. js trong danh sách đó, Node. trình gỡ lỗi js sẽ cố gắng đính kèm vào nó

Ngoài nút. js, bộ chọn cũng hiển thị các chương trình khác đã được khởi chạy với một trong các đối số

"debug.javascript.terminalOptions": {
  "skipFiles": [
    "/**"
  ]
},
3 dạng khác nhau. Điều này giúp có thể đính kèm vào các quy trình trợ giúp của Electron hoặc VS Code

Thiết lập cấu hình "Đính kèm"

Tùy chọn này yêu cầu nhiều công việc hơn nhưng trái ngược với hai tùy chọn trước, tùy chọn này cho phép bạn định cấu hình rõ ràng các tùy chọn cấu hình gỡ lỗi khác nhau

Cấu hình "đính kèm" đơn giản nhất trông như thế này

[
  '!**/node_modules/**',
  '**/$KNOWN_TOOLS$/**',
  '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
  '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
];
02

Cổng

[
  '!**/node_modules/**',
  '**/$KNOWN_TOOLS$/**',
  '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
  '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
];
019 là cổng gỡ lỗi mặc định của các tùy chọn
"debug.javascript.terminalOptions": {
  "skipFiles": [
    "/**"
  ]
},
3 và
"debug.javascript.terminalOptions": {
  "skipFiles": [
    "/**"
  ]
},
4. Để sử dụng một cổng khác (ví dụ:
[
  '!**/node_modules/**',
  '**/$KNOWN_TOOLS$/**',
  '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
  '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
];
022), hãy thêm nó vào các tùy chọn như thế này.
[
  '!**/node_modules/**',
  '**/$KNOWN_TOOLS$/**',
  '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
  '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
];
023 và
[
  '!**/node_modules/**',
  '**/$KNOWN_TOOLS$/**',
  '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
  '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
];
024 và thay đổi thuộc tính
"debug.javascript.terminalOptions": {
  "skipFiles": [
    "/**"
  ]
},
68 trong cấu hình khởi chạy để phù hợp

Nếu bạn muốn đính kèm vào một nút. js chưa được bắt đầu ở chế độ gỡ lỗi, bạn có thể thực hiện việc này bằng cách chỉ định ID tiến trình của Nút. js xử lý dưới dạng chuỗi

[
  '!**/node_modules/**',
  '**/$KNOWN_TOOLS$/**',
  '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
  '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
];
03

Vì việc liên tục tìm ID quy trình và nhập nó vào cấu hình khởi chạy sẽ hơi mất công, nên gỡ lỗi Node hỗ trợ một biến lệnh

[
  '!**/node_modules/**',
  '**/$KNOWN_TOOLS$/**',
  '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
  '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
];
026 sẽ mở bộ chọn quy trình (từ phía trên)

Sử dụng biến

[
  '!**/node_modules/**',
  '**/$KNOWN_TOOLS$/**',
  '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
  '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
];
026, cấu hình khởi chạy trông như thế này

[
  '!**/node_modules/**',
  '**/$KNOWN_TOOLS$/**',
  '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
  '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
];
04

Dừng gỡ lỗi

Sử dụng Gỡ lỗi. Hành động dừng (có sẵn trong thanh công cụ Gỡ lỗi hoặc qua Bảng lệnh) dừng phiên gỡ lỗi

Nếu phiên gỡ lỗi được bắt đầu ở chế độ "đính kèm" (và nút kết thúc màu đỏ trên thanh công cụ Gỡ lỗi hiển thị "phích cắm" được xếp chồng lên nhau), nhấn Dừng sẽ ngắt kết nối Nút. js từ trình gỡ lỗi mà sau đó tiếp tục thực thi

Nếu phiên gỡ lỗi ở chế độ "khởi chạy", nhấn Dừng sẽ thực hiện như sau

  1. Khi nhấn Stop lần đầu tiên, trình gỡ lỗi được yêu cầu tắt một cách nhẹ nhàng bằng cách gửi tín hiệu

    [
      '!**/node_modules/**',
      '**/$KNOWN_TOOLS$/**',
      '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
      '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
    ];
    
    028. Trình gỡ lỗi có thể tự do chặn tín hiệu này và dọn sạch mọi thứ nếu cần và sau đó tắt. Nếu không có điểm dừng (hoặc sự cố) trong mã tắt máy đó, trình gỡ lỗi và phiên gỡ lỗi sẽ kết thúc

  2. Tuy nhiên, nếu trình gỡ lỗi chạm vào điểm dừng trong mã tắt máy hoặc nếu trình gỡ lỗi không tự kết thúc đúng cách thì phiên gỡ lỗi sẽ không kết thúc. Trong trường hợp này, nhấn Stop một lần nữa sẽ buộc chấm dứt debuggee và các tiến trình con của nó (

    [
      '!**/node_modules/**',
      '**/$KNOWN_TOOLS$/**',
      '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
      '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
    ];
    
    029)

Vì vậy, nếu bạn thấy phiên gỡ lỗi không kết thúc khi bạn nhấn nút Dừng màu đỏ, hãy nhấn lại nút này để buộc tắt trình gỡ lỗi

Lưu ý rằng trên hệ điều hành Windows, nhấn Stop luôn giết chết trình gỡ lỗi và các tiến trình con của nó

bản đồ nguồn

Trình gỡ lỗi JavaScript của Mã VS hỗ trợ các bản đồ nguồn giúp gỡ lỗi các ngôn ngữ được phiên mã, ví dụ: TypeScript hoặc JavaScript được rút gọn/xấu xí. Với bản đồ nguồn, có thể thực hiện từng bước hoặc đặt điểm ngắt trong nguồn ban đầu. Nếu không có bản đồ nguồn nào cho nguồn ban đầu hoặc nếu bản đồ nguồn bị hỏng và không thể ánh xạ thành công giữa nguồn và JavaScript được tạo, thì các điểm dừng sẽ hiển thị dưới dạng chưa được xác minh (các vòng tròn rỗng màu xám)

Tính năng bản đồ nguồn được kiểm soát bởi thuộc tính

[
  '!**/node_modules/**',
  '**/$KNOWN_TOOLS$/**',
  '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
  '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
];
030 mặc định là
[
  '!**/node_modules/**',
  '**/$KNOWN_TOOLS$/**',
  '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
  '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
];
031. Điều này có nghĩa là trình gỡ lỗi luôn cố gắng sử dụng bản đồ nguồn (nếu nó có thể tìm thấy bất kỳ bản đồ nào) và do đó, bạn thậm chí có thể chỉ định tệp nguồn (ví dụ: ứng dụng. ts) với thuộc tính
"debug.javascript.terminalOptions": {
  "skipFiles": [
    "/**"
  ]
},
60. Nếu bạn cần tắt bản đồ nguồn vì lý do nào đó, bạn có thể đặt thuộc tính
[
  '!**/node_modules/**',
  '**/$KNOWN_TOOLS$/**',
  '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
  '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
];
030 thành
[
  '!**/node_modules/**',
  '**/$KNOWN_TOOLS$/**',
  '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
  '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
];
034

Cấu hình công cụ

Vì các bản đồ nguồn không phải lúc nào cũng được tạo tự động, bạn nên đảm bảo định cấu hình bộ chuyển mã của mình để tạo chúng. Ví dụ

bản đánh máy

Đối với TypeScript, bạn có thể bật các bản đồ nguồn bằng cách chuyển

[
  '!**/node_modules/**',
  '**/$KNOWN_TOOLS$/**',
  '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
  '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
];
035 đến
[
  '!**/node_modules/**',
  '**/$KNOWN_TOOLS$/**',
  '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
  '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
];
036 hoặc bằng cách thêm
[
  '!**/node_modules/**',
  '**/$KNOWN_TOOLS$/**',
  '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
  '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
];
037 vào tsconfig của bạn. tập tin json

[
  '!**/node_modules/**',
  '**/$KNOWN_TOOLS$/**',
  '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
  '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
];
05

Ba-bên

Đối với Babel, bạn sẽ muốn đặt tùy chọn sourceMaps thành

[
  '!**/node_modules/**',
  '**/$KNOWN_TOOLS$/**',
  '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
  '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
];
031 hoặc chuyển tùy chọn
[
  '!**/node_modules/**',
  '**/$KNOWN_TOOLS$/**',
  '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
  '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
];
039 khi biên dịch mã của mình

[
  '!**/node_modules/**',
  '**/$KNOWN_TOOLS$/**',
  '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
  '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
];
06

gói web

Webpack có nhiều tùy chọn bản đồ nguồn. Chúng tôi khuyên bạn nên đặt thuộc tính

[
  '!**/node_modules/**',
  '**/$KNOWN_TOOLS$/**',
  '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
  '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
];
040 trong
[
  '!**/node_modules/**',
  '**/$KNOWN_TOOLS$/**',
  '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
  '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
];
041 của mình để có kết quả trung thực nhất, mặc dù bạn có thể thử nghiệm với các cài đặt khác gây ra sự chậm chạp trong bản dựng của bạn

Ngoài ra, nếu bạn có các bước biên dịch bổ sung trong gói web, chẳng hạn như sử dụng trình tải TypeScript, bạn cũng sẽ muốn đảm bảo rằng các bước đó được thiết lập để tạo bản đồ nguồn. Mặt khác, các bản đồ nguồn mà webpack tạo ra sẽ ánh xạ trở lại mã được biên dịch từ trình tải, thay vì các nguồn thực

Khám phá bản đồ nguồn

Theo mặc định, Mã VS sẽ tìm kiếm toàn bộ không gian làm việc của bạn, ngoại trừ

[
  '!**/node_modules/**',
  '**/$KNOWN_TOOLS$/**',
  '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
  '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
];
9, để tìm bản đồ nguồn. Trong không gian làm việc lớn, tìm kiếm này có thể chậm. Bạn có thể định cấu hình các vị trí mà Mã VS sẽ tìm kiếm bản đồ nguồn bằng cách đặt thuộc tính
"debug.javascript.terminalOptions": {
  "skipFiles": [
    "/**"
  ]
},
60 trong
[
  '!**/node_modules/**',
  '**/$KNOWN_TOOLS$/**',
  '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
  '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
];
44 của bạn. Ví dụ: cấu hình này sẽ chỉ khám phá các bản đồ nguồn cho các tệp
[
  '!**/node_modules/**',
  '**/$KNOWN_TOOLS$/**',
  '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
  '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
];
045 trong thư mục
[
  '!**/node_modules/**',
  '**/$KNOWN_TOOLS$/**',
  '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
  '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
];
046

[
  '!**/node_modules/**',
  '**/$KNOWN_TOOLS$/**',
  '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
  '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
];
07

Lưu ý rằng

"debug.javascript.terminalOptions": {
  "skipFiles": [
    "/**"
  ]
},
60 phải khớp với tệp JavaScript của bạn, không phải tệp bản đồ nguồn (có thể kết thúc bằng
[
  '!**/node_modules/**',
  '**/$KNOWN_TOOLS$/**',
  '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
  '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
];
048 thay vì
[
  '!**/node_modules/**',
  '**/$KNOWN_TOOLS$/**',
  '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
  '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
];
045)

Độ phân giải bản đồ nguồn

Theo mặc định, chỉ bản đồ nguồn trong

"debug.javascript.terminalOptions": {
  "skipFiles": [
    "/**"
  ]
},
60 của bạn mới được giải quyết. Hành vi này được sử dụng để ngăn các phần phụ thuộc can thiệp vào các điểm dừng mà bạn đã đặt. Ví dụ: nếu bạn có tệp
[
  '!**/node_modules/**',
  '**/$KNOWN_TOOLS$/**',
  '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
  '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
];
051 và một phần phụ thuộc có bản đồ nguồn tham chiếu đến
[
  '!**/node_modules/**',
  '**/$KNOWN_TOOLS$/**',
  '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
  '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
];
052, điều đó sẽ giải quyết sai tệp nguồn của bạn và có thể dẫn đến kết quả đáng ngạc nhiên

Bạn có thể định cấu hình hành vi này bằng cách đặt tùy chọn

"debug.javascript.terminalOptions": {
  "skipFiles": [
    "/**"
  ]
},
61. Nếu được đặt thành
[
  '!**/node_modules/**',
  '**/$KNOWN_TOOLS$/**',
  '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
  '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
];
054, mọi bản đồ nguồn sẽ được giải quyết. Ví dụ: cấu hình này sẽ bổ sung cho phép giải quyết các bản đồ nguồn trong
[
  '!**/node_modules/**',
  '**/$KNOWN_TOOLS$/**',
  '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
  '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
];
055

[
  '!**/node_modules/**',
  '**/$KNOWN_TOOLS$/**',
  '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
  '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
];
08

Bước đi thông minh

Với thuộc tính

"debug.javascript.terminalOptions": {
  "skipFiles": [
    "/**"
  ]
},
66 được đặt thành
[
  '!**/node_modules/**',
  '**/$KNOWN_TOOLS$/**',
  '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
  '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
];
031 trong cấu hình khởi chạy, Mã VS sẽ tự động bỏ qua 'mã không thú vị' khi chuyển qua mã trong trình gỡ lỗi. 'Mã không thú vị' là mã được tạo bởi quá trình phiên mã nhưng không được bao phủ bởi bản đồ nguồn nên mã không ánh xạ trở lại nguồn ban đầu. Mã này cản trở bạn khi duyệt qua mã nguồn trong trình gỡ lỗi vì nó làm cho trình gỡ lỗi chuyển đổi giữa mã nguồn ban đầu và mã được tạo mà bạn không quan tâm.
"debug.javascript.terminalOptions": {
  "skipFiles": [
    "/**"
  ]
},
66 sẽ tự động chuyển qua mã không được bao phủ bởi bản đồ nguồn cho đến khi nó đến vị trí được bao phủ bởi bản đồ nguồn một lần nữa

Bước thông minh đặc biệt hữu ích cho các trường hợp như không đồng bộ/chờ biên dịch xuống trong TypeScript, trong đó trình biên dịch đưa mã trợ giúp không có trong bản đồ nguồn

Tính năng

"debug.javascript.terminalOptions": {
  "skipFiles": [
    "/**"
  ]
},
66 chỉ áp dụng cho mã JavaScript được tạo từ nguồn và do đó có bản đồ nguồn. Đối với JavaScript không có nguồn, tùy chọn bước thông minh không có tác dụng

Mẹo bản đồ nguồn JavaScript

Một vấn đề phổ biến khi gỡ lỗi với bản đồ nguồn là bạn sẽ đặt một điểm dừng và điểm ngắt sẽ chuyển sang màu xám. Nếu bạn di chuột qua nó, bạn sẽ thấy thông báo,

[
  '!**/node_modules/**',
  '**/$KNOWN_TOOLS$/**',
  '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
  '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
];
060. Gì bây giờ? . Đầu tiên, giải thích nhanh về cách bộ điều hợp gỡ lỗi Node xử lý bản đồ nguồn

Khi bạn đặt điểm ngắt trong

[
  '!**/node_modules/**',
  '**/$KNOWN_TOOLS$/**',
  '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
  '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
];
061, bộ điều hợp gỡ lỗi phải tìm ra đường dẫn đến
[
  '!**/node_modules/**',
  '**/$KNOWN_TOOLS$/**',
  '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
  '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
];
062, phiên bản đã biên dịch của tệp TypeScript của bạn, đây là nội dung thực sự đang chạy trong Node. Tuy nhiên, không có cách nào đơn giản để tìm ra điều này bắt đầu từ tệp
[
  '!**/node_modules/**',
  '**/$KNOWN_TOOLS$/**',
  '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
  '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
];
063. Thay vào đó, bộ điều hợp gỡ lỗi sử dụng thuộc tính
"debug.javascript.terminalOptions": {
  "skipFiles": [
    "/**"
  ]
},
60 trong
[
  '!**/node_modules/**',
  '**/$KNOWN_TOOLS$/**',
  '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
  '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
];
44 để tìm tất cả các tệp
[
  '!**/node_modules/**',
  '**/$KNOWN_TOOLS$/**',
  '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
  '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
];
045 đã phiên mã và phân tích cú pháp chúng để tạo bản đồ nguồn chứa vị trí của các tệp
[
  '!**/node_modules/**',
  '**/$KNOWN_TOOLS$/**',
  '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
  '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
];
063 được liên kết của nó

Khi bạn xây dựng tệp

[
  '!**/node_modules/**',
  '**/$KNOWN_TOOLS$/**',
  '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
  '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
];
061 của mình trong TypeScript với bản đồ nguồn được bật, tệp này sẽ tạo tệp
[
  '!**/node_modules/**',
  '**/$KNOWN_TOOLS$/**',
  '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
  '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
];
069 hoặc bản đồ nguồn được đặt trong chuỗi dưới dạng chuỗi được mã hóa base64 trong nhận xét ở cuối tệp
[
  '!**/node_modules/**',
  '**/$KNOWN_TOOLS$/**',
  '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
  '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
];
062. Để tìm các tệp
[
  '!**/node_modules/**',
  '**/$KNOWN_TOOLS$/**',
  '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
  '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
];
063 được liên kết với bản đồ này, bộ điều hợp gỡ lỗi sẽ xem xét hai thuộc tính trong bản đồ nguồn,
[
  '!**/node_modules/**',
  '**/$KNOWN_TOOLS$/**',
  '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
  '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
];
072 và
[
  '!**/node_modules/**',
  '**/$KNOWN_TOOLS$/**',
  '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
  '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
];
073.
[
  '!**/node_modules/**',
  '**/$KNOWN_TOOLS$/**',
  '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
  '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
];
073 là tùy chọn - nếu có, nó được thêm vào trước mỗi đường dẫn trong
[
  '!**/node_modules/**',
  '**/$KNOWN_TOOLS$/**',
  '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
  '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
];
072, là một mảng các đường dẫn. Kết quả là một mảng các đường dẫn tuyệt đối hoặc tương đối đến tệp
[
  '!**/node_modules/**',
  '**/$KNOWN_TOOLS$/**',
  '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
  '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
];
063. Đường dẫn tương đối được giải quyết liên quan đến bản đồ nguồn

Cuối cùng, bộ điều hợp gỡ lỗi tìm kiếm đường dẫn đầy đủ của

[
  '!**/node_modules/**',
  '**/$KNOWN_TOOLS$/**',
  '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
  '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
];
061 trong danh sách kết quả gồm các tệp
[
  '!**/node_modules/**',
  '**/$KNOWN_TOOLS$/**',
  '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
  '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
];
063 này. Nếu trùng khớp, nó đã tìm thấy tệp bản đồ nguồn để sử dụng khi ánh xạ
[
  '!**/node_modules/**',
  '**/$KNOWN_TOOLS$/**',
  '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
  '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
];
061 đến
[
  '!**/node_modules/**',
  '**/$KNOWN_TOOLS$/**',
  '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
  '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
];
062. Nếu không khớp thì nó không thể liên kết điểm ngắt và nó sẽ chuyển sang màu xám

Dưới đây là một số điều cần thử khi điểm ngắt của bạn chuyển sang màu xám

  • Trong khi gỡ lỗi, hãy chạy Gỡ lỗi. Lệnh Chẩn đoán Sự cố Điểm dừng. Lệnh này sẽ hiển thị một công cụ có thể cung cấp gợi ý để giúp bạn giải quyết mọi vấn đề từ Bảng lệnh ( ⇧⌘P (Windows, Linux Ctrl+Shift+P)).
  • Bạn đã xây dựng với bản đồ nguồn được bật chưa?
  • Các thuộc tính
    [
      '!**/node_modules/**',
      '**/$KNOWN_TOOLS$/**',
      '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
      '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
    ];
    
    073 và
    [
      '!**/node_modules/**',
      '**/$KNOWN_TOOLS$/**',
      '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
      '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
    ];
    
    072 trong bản đồ nguồn của bạn có chính xác không?
  • Bạn đã mở thư mục trong Mã VS với trường hợp không chính xác chưa?
  • Hãy thử tìm kiếm trợ giúp về thiết lập cụ thể của bạn trên Stack Overflow hoặc bằng cách gửi sự cố trên GitHub
  • Hãy thử thêm một câu lệnh
    [
      '!**/node_modules/**',
      '**/$KNOWN_TOOLS$/**',
      '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
      '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
    ];
    
    088. Nếu nó đột nhập vào tệp
    [
      '!**/node_modules/**',
      '**/$KNOWN_TOOLS$/**',
      '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
      '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
    ];
    
    063 ở đó, nhưng các điểm dừng tại điểm đó không liên kết, thì đó là thông tin hữu ích để đưa vào vấn đề GitHub

Gỡ lỗi từ xa

Ghi chú. Mã VS hiện có khả năng phát triển từ xa phổ quát. Sử dụng tiện ích mở rộng Phát triển từ xa, Nút. js trong các kịch bản và vùng chứa từ xa không khác gì Node. phát triển js trong thiết lập cục bộ. Đây là cách được đề xuất để gỡ lỗi nút từ xa. chương trình js. Hãy xem phần Bắt đầu và Hướng dẫn từ xa để tìm hiểu thêm

Nếu bạn không thể sử dụng bất kỳ tiện ích mở rộng Phát triển từ xa nào để gỡ lỗi Nút của mình. js, bên dưới là hướng dẫn cách gỡ lỗi một Nút từ xa. js từ phiên bản Mã VS cục bộ của bạn

nút. trình gỡ lỗi js hỗ trợ gỡ lỗi từ xa khi bạn đính kèm vào một quy trình đang chạy trên một máy khác hoặc trong một vùng chứa. Chỉ định máy chủ từ xa thông qua thuộc tính

"debug.javascript.terminalOptions": {
  "skipFiles": [
    "/**"
  ]
},
69. Ví dụ

[
  '!**/node_modules/**',
  '**/$KNOWN_TOOLS$/**',
  '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
  '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
];
09

Theo mặc định, Mã VS sẽ truyền nguồn được gỡ lỗi từ Nút từ xa. js vào Mã VS cục bộ và hiển thị nó trong trình chỉnh sửa chỉ đọc. Bạn có thể bước qua mã này, nhưng không thể sửa đổi nó. Thay vào đó, nếu bạn muốn Mã VS mở nguồn có thể chỉnh sửa từ không gian làm việc của mình, bạn có thể thiết lập ánh xạ giữa các vị trí từ xa và cục bộ. Thuộc tính

"debug.javascript.terminalOptions": {
  "skipFiles": [
    "/**"
  ]
},
64 và
"debug.javascript.terminalOptions": {
  "skipFiles": [
    "/**"
  ]
},
65 có thể được sử dụng để ánh xạ đường dẫn giữa dự án Mã VS cục bộ và Nút (từ xa). thư mục js. Điều này hoạt động ngay cả cục bộ trên cùng một hệ thống hoặc trên các hệ điều hành khác nhau. Bất cứ khi nào một đường dẫn mã cần được chuyển đổi từ Nút từ xa. js vào đường dẫn Mã VS cục bộ, đường dẫn
"debug.javascript.terminalOptions": {
  "skipFiles": [
    "/**"
  ]
},
65 bị loại bỏ khỏi đường dẫn và được thay thế bằng
"debug.javascript.terminalOptions": {
  "skipFiles": [
    "/**"
  ]
},
64. Đối với chuyển đổi ngược lại, đường dẫn
"debug.javascript.terminalOptions": {
  "skipFiles": [
    "/**"
  ]
},
64 được thay thế bằng đường dẫn
"debug.javascript.terminalOptions": {
  "skipFiles": [
    "/**"
  ]
},
65

[
  '!**/node_modules/**',
  '**/$KNOWN_TOOLS$/**',
  '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
  '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
];
0

Truy cập tập lệnh đã tải

Nếu bạn cần đặt điểm dừng trong tập lệnh không phải là một phần của không gian làm việc của mình và do đó không thể dễ dàng định vị và mở thông qua trình duyệt tệp VS Code thông thường, bạn có thể truy cập tập lệnh đã tải qua chế độ xem LOADED SCRIPTS trong chế độ xem Chạy và Gỡ lỗi

Tên javascript

Chế độ xem LOADED SCRIPTS cho phép bạn nhanh chóng chọn tập lệnh bằng cách nhập tên của tập lệnh hoặc lọc danh sách khi Bật Bộ lọc trên Loại

Tập lệnh được tải vào trình chỉnh sửa chỉ đọc nơi bạn có thể đặt điểm dừng. Các điểm dừng này được ghi nhớ trong các phiên gỡ lỗi nhưng bạn chỉ có quyền truy cập vào nội dung tập lệnh trong khi phiên gỡ lỗi đang chạy

Tự động khởi động lại các phiên gỡ lỗi khi nguồn được chỉnh sửa

Thuộc tính

"debug.javascript.terminalOptions": {
  "skipFiles": [
    "/**"
  ]
},
67 của cấu hình khởi chạy kiểm soát xem Nút. trình gỡ lỗi js tự động khởi động lại sau khi phiên gỡ lỗi kết thúc. Tính năng này rất hữu ích nếu bạn sử dụng gật đầu để khởi động lại Node. js khi thay đổi tệp. Đặt thuộc tính cấu hình khởi chạy
"debug.javascript.terminalOptions": {
  "skipFiles": [
    "/**"
  ]
},
67 thành
[
  '!**/node_modules/**',
  '**/$KNOWN_TOOLS$/**',
  '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
  '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
];
031 làm cho trình gỡ lỗi nút tự động cố gắng kết nối lại với Nút. js sau nút. js đã kết thúc

Nếu bạn đã bắt đầu chương trình của mình

[
  '!**/node_modules/**',
  '**/$KNOWN_TOOLS$/**',
  '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
  '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
];
00 thông qua gật đầu trên dòng lệnh như thế này

[
  '!**/node_modules/**',
  '**/$KNOWN_TOOLS$/**',
  '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
  '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
];
1

bạn có thể đính kèm trình gỡ lỗi Mã VS với cấu hình khởi chạy sau

[
  '!**/node_modules/**',
  '**/$KNOWN_TOOLS$/**',
  '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
  '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
];
2

Ngoài ra, bạn có thể bắt đầu chương trình của mình

[
  '!**/node_modules/**',
  '**/$KNOWN_TOOLS$/**',
  '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
  '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
];
00 trực tiếp qua gật đầu với cấu hình khởi chạy và đính kèm trình gỡ lỗi Mã VS

[
  '!**/node_modules/**',
  '**/$KNOWN_TOOLS$/**',
  '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
  '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
];
3

Mẹo. Nhấn nút Dừng sẽ dừng phiên gỡ lỗi và ngắt kết nối khỏi Nút. js, nhưng nodemon (và Node. js) sẽ tiếp tục chạy. Để dừng gật đầu, bạn sẽ phải giết nó từ dòng lệnh (điều này có thể dễ dàng thực hiện được nếu bạn sử dụng

"debug.javascript.terminalOptions": {
  "skipFiles": [
    "/**"
  ]
},
61 như hình trên)

Mẹo. Trong trường hợp lỗi cú pháp, nodemon sẽ không thể khởi động Node. js thành công cho đến khi lỗi được sửa. Trong trường hợp này, Mã VS sẽ tiếp tục cố gắng đính kèm vào Nút. js nhưng cuối cùng bỏ cuộc (sau 10 giây). Để tránh điều này, bạn có thể tăng thời gian chờ bằng cách thêm thuộc tính

"debug.javascript.terminalOptions": {
  "skipFiles": [
    "/**"
  ]
},
62 với giá trị lớn hơn (tính bằng mili giây)

Khởi động lại khung

Trình gỡ lỗi nút hỗ trợ khởi động lại thực thi tại khung ngăn xếp. Điều này có thể hữu ích trong các trường hợp bạn phát hiện ra sự cố trong mã nguồn của mình và bạn muốn chạy lại một phần nhỏ của mã với các giá trị đầu vào đã sửa đổi. Dừng và sau đó bắt đầu lại toàn bộ phiên gỡ lỗi có thể tốn thời gian. Hành động Khung khởi động lại cho phép bạn nhập lại chức năng hiện tại sau khi bạn đã thay đổi các biến bằng hành động Đặt giá trị

Tên javascript

Khởi động lại khung sẽ không khôi phục đột biến về trạng thái bên ngoài chức năng, do đó, nó có thể không luôn hoạt động như mong đợi

Điểm dừng

Điểm dừng có điều kiện

Điểm dừng có điều kiện là điểm dừng chỉ tạm dừng khi một biểu thức trả về giá trị trung thực. Bạn có thể tạo một cái bằng cách nhấp chuột phải vào máng xối bên cạnh số dòng và chọn "Điểm ngắt có điều kiện"

Tên javascript

Điểm đăng nhập

Đôi khi, bạn chỉ muốn ghi lại một thông báo hoặc giá trị khi mã chạm vào một vị trí nhất định, thay vì tạm dừng. Bạn có thể làm điều này với logpoint. Các điểm đăng nhập không tạm dừng mà thay vào đó ghi một thông báo vào Bảng điều khiển gỡ lỗi khi nhấn. Trong trình gỡ lỗi JavaScript, bạn có thể sử dụng dấu ngoặc nhọn để nội suy các biểu thức vào trong thư, chẳng hạn như

[
  '!**/node_modules/**',
  '**/$KNOWN_TOOLS$/**',
  '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
  '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
];
04

Bạn có thể tạo một cái bằng cách nhấp chuột phải vào máng xối bên cạnh số dòng và chọn "Điểm đăng nhập". Ví dụ: điều này có thể ghi một cái gì đó như

[
  '!**/node_modules/**',
  '**/$KNOWN_TOOLS$/**',
  '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
  '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
];
05

Tên javascript

Số lần truy cập điểm dừng

'Điều kiện đếm lượt truy cập' kiểm soát số lần điểm dừng cần được nhấn trước khi thực thi 'phá vỡ'. Bạn có thể đặt điểm ngắt số lần truy cập bằng cách nhấp chuột phải vào máng xối bên cạnh số dòng, chọn "Điểm dừng có điều kiện", sau đó chuyển sang "Số lần truy cập"

Tên javascript

Cú pháp đếm lần truy cập được hỗ trợ bởi Nút. trình gỡ lỗi js là một số nguyên hoặc một trong các toán tử

[
  '!**/node_modules/**',
  '**/$KNOWN_TOOLS$/**',
  '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
  '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
];
06,
[
  '!**/node_modules/**',
  '**/$KNOWN_TOOLS$/**',
  '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
  '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
];
07,
[
  '!**/node_modules/**',
  '**/$KNOWN_TOOLS$/**',
  '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
  '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
];
08,
[
  '!**/node_modules/**',
  '**/$KNOWN_TOOLS$/**',
  '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
  '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
];
09,
[
  '!**/node_modules/**',
  '**/$KNOWN_TOOLS$/**',
  '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
  '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
];
10,
[
  '!**/node_modules/**',
  '**/$KNOWN_TOOLS$/**',
  '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
  '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
];
11 theo sau là một số nguyên

Vài ví dụ

  • [
      '!**/node_modules/**',
      '**/$KNOWN_TOOLS$/**',
      '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
      '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
    ];
    
    12 break luôn sau 10 hit
  • [
      '!**/node_modules/**',
      '**/$KNOWN_TOOLS$/**',
      '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
      '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
    ];
    
    13 chỉ phá vỡ hai lần truy cập đầu tiên
  • [
      '!**/node_modules/**',
      '**/$KNOWN_TOOLS$/**',
      '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
      '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
    ];
    
    14 giống như
    [
      '!**/node_modules/**',
      '**/$KNOWN_TOOLS$/**',
      '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
      '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
    ];
    
    15
  • [
      '!**/node_modules/**',
      '**/$KNOWN_TOOLS$/**',
      '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
      '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
    ];
    
    16 phá vỡ mọi cú đánh khác

Xác thực điểm dừng

Vì lý do hiệu suất, Node. js phân tích cú pháp các hàm bên trong tệp JavaScript một cách lười biếng trong lần truy cập đầu tiên. Do đó, các điểm dừng không hoạt động trong các vùng mã nguồn chưa được Node nhìn thấy (phân tích cú pháp). js

Vì hành vi này không lý tưởng để gỡ lỗi, Mã VS chuyển tùy chọn

[
  '!**/node_modules/**',
  '**/$KNOWN_TOOLS$/**',
  '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
  '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
];
17 cho Nút. js tự động. Điều này ngăn quá trình phân tích cú pháp bị trì hoãn và đảm bảo rằng các điểm dừng có thể được xác thực trước khi chạy mã (để chúng không còn "nhảy")

Vì tùy chọn

[
  '!**/node_modules/**',
  '**/$KNOWN_TOOLS$/**',
  '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
  '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
];
17 có thể làm tăng đáng kể thời gian khởi động của mục tiêu gỡ lỗi, nên bạn có thể dễ dàng chọn không tham gia bằng cách chuyển
[
  '!**/node_modules/**',
  '**/$KNOWN_TOOLS$/**',
  '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
  '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
];
19 làm thuộc tính
"debug.javascript.terminalOptions": {
  "skipFiles": [
    "/**"
  ]
},
65

Khi làm như vậy, bạn sẽ thấy rằng một số điểm dừng của bạn không "dính" vào dòng được yêu cầu mà thay vào đó "nhảy" sang dòng có thể tiếp theo trong mã đã được phân tích cú pháp. Để tránh nhầm lẫn, Mã VS luôn hiển thị các điểm ngắt tại vị trí mà Nút. js nghĩ rằng điểm dừng là. Trong phần ĐIỂM ĐỘT PHÁ, các điểm ngắt này được hiển thị bằng một mũi tên giữa số dòng được yêu cầu và số dòng thực tế

Tên javascript

Xác thực điểm ngắt này xảy ra khi phiên bắt đầu và các điểm ngắt được đăng ký với Node. js hoặc khi một phiên đang chạy và một điểm ngắt mới được đặt. Trong trường hợp này, điểm dừng có thể "nhảy" đến một vị trí khác. Sau nút. js đã phân tích cú pháp tất cả mã (ví dụ: bằng cách chạy qua mã), bạn có thể dễ dàng áp dụng lại các điểm dừng cho các vị trí được yêu cầu bằng nút Áp dụng lại trong tiêu đề phần BREAKPOINTS. Điều này sẽ làm cho các điểm ngắt "nhảy ngược" về vị trí được yêu cầu

Tên javascript

Bỏ qua mã không thú vị

Nút mã VS. js có một tính năng để tránh mã nguồn mà bạn không muốn bước qua (còn được gọi là 'Chỉ mã của tôi'). Tính năng này có thể được bật bằng thuộc tính

"debug.javascript.terminalOptions": {
  "skipFiles": [
    "/**"
  ]
},
67 trong cấu hình khởi chạy của bạn.
"debug.javascript.terminalOptions": {
  "skipFiles": [
    "/**"
  ]
},
67 là một mảng các mẫu toàn cầu để bỏ qua các đường dẫn tập lệnh

Ví dụ, sử dụng

[
  '!**/node_modules/**',
  '**/$KNOWN_TOOLS$/**',
  '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
  '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
];
4

tất cả mã trong thư mục

[
  '!**/node_modules/**',
  '**/$KNOWN_TOOLS$/**',
  '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
  '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
];
9 và
[
  '!**/node_modules/**',
  '**/$KNOWN_TOOLS$/**',
  '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
  '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
];
24 trong dự án của bạn sẽ bị bỏ qua.
"debug.javascript.terminalOptions": {
  "skipFiles": [
    "/**"
  ]
},
67 cũng áp dụng cho vị trí được hiển thị khi gọi
[
  '!**/node_modules/**',
  '**/$KNOWN_TOOLS$/**',
  '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
  '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
];
26 và các phương thức tương tự. vị trí không thể bỏ qua đầu tiên trong ngăn xếp sẽ được hiển thị bên cạnh đầu ra trong Bảng điều khiển gỡ lỗi

Các mô-đun lõi tích hợp của Node. js có thể được gọi bằng 'tên ma thuật'

[
  '!**/node_modules/**',
  '**/$KNOWN_TOOLS$/**',
  '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
  '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
];
27 theo mẫu hình cầu. Ví dụ sau bỏ qua tất cả các mô-đun bên trong

[
  '!**/node_modules/**',
  '**/$KNOWN_TOOLS$/**',
  '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
  '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
];
5

Các quy tắc 'bỏ qua' chính xác như sau

  • Nếu bạn bước vào một tệp bị bỏ qua, bạn sẽ không dừng ở đó - bạn sẽ dừng ở dòng thực hiện tiếp theo không có trong tệp bị bỏ qua
  • Nếu bạn đã đặt tùy chọn ngắt các ngoại lệ đã ném, thì bạn sẽ không ngắt các ngoại lệ được ném từ các tệp bị bỏ qua trừ khi chúng nổi lên thành một tệp không bị bỏ qua
  • Nếu bạn đặt một điểm ngắt trong một tệp bị bỏ qua, bạn sẽ dừng tại điểm ngắt đó và bạn sẽ có thể đi qua nó cho đến khi bạn bước ra khỏi nó, tại thời điểm đó, hành vi bỏ qua bình thường sẽ tiếp tục
  • Vị trí của thông báo bảng điều khiển từ các tệp bỏ qua bên trong sẽ được hiển thị dưới dạng vị trí không bỏ qua đầu tiên trong ngăn xếp cuộc gọi

Nguồn bị bỏ qua được hiển thị theo kiểu 'làm mờ' trong chế độ xem CALL STACK

Tên javascript

Di chuột qua các mục bị mờ giải thích lý do tại sao khung ngăn xếp bị mờ

Một mục menu ngữ cảnh trên ngăn xếp cuộc gọi, Chuyển đổi bỏ qua tệp này cho phép bạn dễ dàng bỏ qua một tệp trong thời gian chạy mà không cần thêm tệp đó vào cấu hình khởi chạy của bạn. Tùy chọn này chỉ tồn tại cho phiên gỡ lỗi hiện tại. Bạn cũng có thể sử dụng nó để dừng bỏ qua một tệp bị bỏ qua bởi tùy chọn

"debug.javascript.terminalOptions": {
  "skipFiles": [
    "/**"
  ]
},
67 trong cấu hình khởi chạy của bạn

Ghi chú. Trình gỡ lỗi giao thức

[
  '!**/node_modules/**',
  '**/$KNOWN_TOOLS$/**',
  '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
  '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
];
29 hỗ trợ các mẫu toàn cầu tiêu cực, nhưng chúng phải tuân theo một mẫu tích cực. các mẫu tích cực thêm vào tập hợp các tệp bị bỏ qua, trong khi các mẫu tiêu cực trừ khỏi tập hợp đó

Trong ví dụ sau (

[
  '!**/node_modules/**',
  '**/$KNOWN_TOOLS$/**',
  '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
  '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
];
29 chỉ dành cho giao thức), tất cả trừ mô-đun 'toán học' đều bị bỏ qua

[
  '!**/node_modules/**',
  '**/$KNOWN_TOOLS$/**',
  '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
  '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
];
6

Ghi chú. Trình gỡ lỗi giao thức

[
  '!**/node_modules/**',
  '**/$KNOWN_TOOLS$/**',
  '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
  '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
];
29 phải mô phỏng tính năng
"debug.javascript.terminalOptions": {
  "skipFiles": [
    "/**"
  ]
},
67 vì Giao thức trình gỡ lỗi V8 không hỗ trợ nó nguyên bản. Điều này có thể dẫn đến hiệu suất bước chậm

Thời gian chạy giống như nút được hỗ trợ

Trình gỡ lỗi VS Code JavaScript hiện tại hỗ trợ phiên bản Node từ 8 trở lên. x, các phiên bản Chrome gần đây và các phiên bản Edge gần đây (thông qua loại khởi chạy

[
  '!**/node_modules/**',
  '**/$KNOWN_TOOLS$/**',
  '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
  '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
];
33)

Bước tiếp theo

Trong trường hợp bạn chưa đọc Node. js, hãy xem

  • Nút. js - Kịch bản Node từ đầu đến cuối với một ứng dụng mẫu

Để xem hướng dẫn về những điều cơ bản của Node. js, hãy xem các video này

  • Video giới thiệu - Gỡ lỗi - Video giới thiệu giới thiệu những điều cơ bản về gỡ lỗi
  • Bắt đầu với Nút. gỡ lỗi js - Tìm hiểu cách đính kèm vào một Nút đang chạy. quy trình js

Để tìm hiểu về hỗ trợ chạy tác vụ của VS Code, hãy truy cập

  • Nhiệm vụ - Chạy các nhiệm vụ với Gulp, Grunt và Jake. Hiển thị lỗi và cảnh báo

Để viết tiện ích mở rộng trình gỡ lỗi của riêng bạn, hãy truy cập

  • Tiện ích mở rộng trình gỡ lỗi - Các bước để tạo tiện ích mở rộng gỡ lỗi Mã VS bắt đầu từ một mẫu giả

Câu hỏi thường gặp

Tôi có thể gỡ lỗi nếu tôi đang sử dụng liên kết tượng trưng không?

Có, nếu bạn đã tạo liên kết tượng trưng cho các thư mục bên trong dự án của mình, chẳng hạn như với

"debug.javascript.terminalOptions": {
  "skipFiles": [
    "/**"
  ]
},
63, bạn có thể gỡ lỗi các nguồn được liên kết tượng trưng bằng cách thông báo cho Nút. js để duy trì các đường dẫn được liên kết tượng trưng. sử dụng nút. exe chuyển đổi
[
  '!**/node_modules/**',
  '**/$KNOWN_TOOLS$/**',
  '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
  '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
];
35 trong cấu hình khởi chạy thuộc tính
"debug.javascript.terminalOptions": {
  "skipFiles": [
    "/**"
  ]
},
65 của bạn.
"debug.javascript.terminalOptions": {
  "skipFiles": [
    "/**"
  ]
},
65, một mảng các chuỗi, được chuyển đến tệp thực thi thời gian chạy phiên gỡ lỗi, mặc định là nút. người cũ

[
  '!**/node_modules/**',
  '**/$KNOWN_TOOLS$/**',
  '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
  '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
];
7

Nếu tập lệnh chính của bạn nằm trong đường dẫn được liên kết tượng trưng, ​​thì bạn cũng sẽ cần thêm tùy chọn

[
  '!**/node_modules/**',
  '**/$KNOWN_TOOLS$/**',
  '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
  '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
];
38. Tùy chọn này chỉ khả dụng trong Node 10+

Làm cách nào để gỡ lỗi các mô-đun ECMAScript?

Nếu bạn sử dụng esm hoặc chuyển

[
  '!**/node_modules/**',
  '**/$KNOWN_TOOLS$/**',
  '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
  '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
];
39 tới Node. js để sử dụng các mô-đun ECMAScript, bạn có thể chuyển các tùy chọn này thông qua thuộc tính
"debug.javascript.terminalOptions": {
  "skipFiles": [
    "/**"
  ]
},
65 của
[
  '!**/node_modules/**',
  '**/$KNOWN_TOOLS$/**',
  '!**/node_modules/mocha/**', // use "!" to exclude all scripts in "mocha" node modules
  '**/node_modules/my-cool-test-runner/**' // include scripts in the custom test runner
];
44