欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

深入講解VsCode各場(chǎng)景高級(jí)調(diào)試與使用技巧 代碼編寫(xiě)效率提升2倍

csdn   發(fā)布時(shí)間:2023-12-22 12:01:52   作者:小明的學(xué)習(xí)圈子   我要評(píng)論
VSCode是一款開(kāi)源免費(fèi)的跨平臺(tái)文本編輯器,它的可擴(kuò)展性和豐富的功能使得它成為了許多程序員的首選編輯器,在本文中,我將分享一些VSCode的使用技巧,幫助您更高效地使用它

{
  "version": "0.2.0",
  "configurations": [
    {
      "type": "chrome",
      "request": "launch",
      "name": "vuejs: chrome",
      "url": "http://localhost:8080",
      "webRoot": "${workspaceFolder}",
      "breakOnLoad": true,
      "pathMapping": {
        "/_karma_jpgack_": "${workspaceFolder}"
      },
      "sourceMapPathOverrides": {
        "jpgack:/*": "${webRoot}/*",
        "/./*": "${webRoot}/*",
        "/src/*": "${webRoot}/*",
        "/*": "*",
        "/./~/*": "${webRoot}/node_modules/*"
      },
      "preLaunchTask": "serve"
    }
  ]
}
復(fù)制代碼

添加任務(wù)腳本

{
  "version": "2.0.0",
  "tasks": [
    {
      "label": "serve",
      "type": "npm",
      "script": "serve",
      "isBackground": true,
      "problemMatcher": [
        {
          "base": "$tsc-watch",
          "background": {
            "activeOnStart": true,
            "beginsPattern": "Starting development server",
            "endsPattern": "Compiled successfully"
          }
        }
      ],
      "group": {
        "kind": "build",
        "isDefault": true
      }
    }
  ]
}
復(fù)制代碼

該腳本的作用是運(yùn)行npm run serve編譯命令。

F5啟動(dòng)調(diào)試即可

注意:此方式的主要點(diǎn)在于launch.json配置文件中,通過(guò)preLaunchTask字段指定調(diào)試前先運(yùn)行一個(gè)任務(wù)腳本,preLaunchTask的值對(duì)應(yīng)tasks.json文件中的label值。

借助vscode插件Debugger for Chrome在Chrome中調(diào)試

  • 第一步還是初始化vue項(xiàng)目,添加vue.config.js文件配置,指定要生成sourceMaps資源
module.exports = {
  configureWebpack: {
    // 生成sourceMaps
    devtool: "source-map"
  }
};
復(fù)制代碼

  • vscode中擴(kuò)展中安裝Debugger for Chrome插件,并確保沒(méi)有禁用插件

  • 手動(dòng)啟動(dòng)項(xiàng)目的運(yùn)行, 此方式不需要配置tasks.json任務(wù)
# 終端執(zhí)行命令,啟動(dòng)項(xiàng)目
npm run serve
復(fù)制代碼

F5啟動(dòng)調(diào)試即可

借助vscode插件Debugger for Firfox在Firefox中調(diào)試

  • Debugger for Chrome基本一樣,區(qū)別在于安裝Debugger for Firfox插件,并在launch.json配置中,增加調(diào)試Firefox的配置即可,配置如下
{
  "version": "0.2.0",
  "configurations": [
    // 省略Chrome的配置...
    // 下面添加的Firefox的配置
    {
      "type": "firefox",
      "request": "launch",
      "reAttach": true,
      "name": "vuejs: firefox",
      "url": "http://localhost:8080",
      "webRoot": "${workspaceFolder}/src",
      "pathMappings": [{ "url": "jpgack:///src/", "path": "${webRoot}/" }]
    }
  ]
}
復(fù)制代碼
  • 調(diào)試時(shí)選擇對(duì)應(yīng)的調(diào)試命令即可

Firefox初始啟動(dòng)時(shí)不會(huì)觸發(fā)調(diào)試,需要刷新一次

調(diào)試Electron項(xiàng)目

Electron很多人都使用過(guò),主要用于開(kāi)發(fā)跨平臺(tái)的系統(tǒng)桌面應(yīng)用。那么來(lái)看下vue-cli-electron-builder創(chuàng)建的Electron項(xiàng)目怎么調(diào)試。步驟如下:

  • 在初始化項(xiàng)目后,首先修改vue.config.js文件配置,增加sourceMaps配置:
module.exports = {
  configureWebpack: {
    devtool: 'source-map'
  }
}
復(fù)制代碼
  • 創(chuàng)建調(diào)試配置.vscode/launch.json

{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "Electron: Main",
      "type": "node",
      "request": "launch",
      "protocol": "inspector",
      "preLaunchTask": "bootstarp-service",
      "runtimeExecutable": "${workspaceRoot}/node_modules/.bin/electron",
      "windows": {
        "runtimeExecutable": "${workspaceRoot}/node_modules/.bin/electron.cmd"
      },
      "args": ["--remote-debugging-port=9223", "./dist_electron"],
      "outFiles": ["${workspaceFolder}/dist_electron/**/*.js"]
    },
    {
      "name": "Electron: Renderer",
      "type": "chrome",
      "request": "attach",
      "port": 9223,
      "urlFilter": "http://localhost:*",
      "timeout": 0,
      "webRoot": "${workspaceFolder}/src",
      "sourceMapPathOverrides": {
        "jpgack:///./src/*": "${webRoot}/*"
      }
    },
  ],
  "compounds": [
    {
      "name": "Electron: All",
      "configurations": ["Electron: Main", "Electron: Renderer"]
    }
  ]
}
復(fù)制代碼

此處配置了兩個(gè)調(diào)試命令: Electron: Main用于調(diào)試主進(jìn)程,Electron: Renderer用于調(diào)試渲染進(jìn)程;compounds[].選項(xiàng)用于定義復(fù)合調(diào)試選項(xiàng); configurations定義的復(fù)合命令是并行的; preLaunchTask用于配置命令執(zhí)行前先執(zhí)行的任務(wù)腳本,其值對(duì)應(yīng)tasks.json中的label字段; preLaunchTask用在compounds時(shí),用于定義configurations復(fù)合任務(wù)執(zhí)行前先執(zhí)行的腳本。

  • 創(chuàng)建任務(wù)腳本

{
  // See https://go.microsoft.com/fwlink/?LinkId=733558
  // for the documentation about the tasks.json format
  "version": "2.0.0",
  "tasks": [
    {
      "label": "bootstarp-service",
      "type": "process",
      "command": "./node_modules/.bin/vue-cli-service",
      "windows": {
        "command": "./node_modules/.bin/vue-cli-service.cmd",
        "options": {
          "env": {
            "VUE_APP_ENV": "dev",
            "VUE_APP_TYPE": "local"
          }
        }
      },
      "isBackground": true,
      "args": [
        "electron:serve", "--debug"
      ],
      "problemMatcher": {
        "owner": "custom",
        "pattern": {
          "regexp": ""
        },
        "background": {
          "beginsPattern": "Starting development server\\.\\.\\.",
          "endsPattern": "Not launching electron as debug argument was passed\\."
        }
      }
    }
  ]
}
復(fù)制代碼
  • 啟動(dòng)調(diào)試

在主進(jìn)程相關(guān)代碼上打上斷點(diǎn),然后啟動(dòng)調(diào)試主進(jìn)程命令就可以調(diào)試主進(jìn)程了

注意,這里的options參數(shù)是根據(jù)實(shí)際的情況,自定義添加我們運(yùn)行項(xiàng)目時(shí)所需要的參數(shù),比如我這里因?yàn)閱?dòng)項(xiàng)目的npm命令是:

"serve-local:dev": "cross-env VUE_APP_TYPE=local VUE_APP_ENV=dev vue-cli-service electron:serve"
復(fù)制代碼
  • 主進(jìn)程調(diào)試成功

  • 開(kāi)始調(diào)試渲染進(jìn)程

切換到渲染進(jìn)程的調(diào)試選項(xiàng),在渲染進(jìn)程的代碼處打上斷點(diǎn),點(diǎn)擊調(diào)試。注意,此時(shí)并不會(huì)有斷點(diǎn)終端,需要ctrl+r手動(dòng)刷新軟件進(jìn)程才會(huì)看到渲染進(jìn)程的斷點(diǎn)。

刷新渲染進(jìn)程后的效果,如下圖,已經(jīng)進(jìn)入了斷點(diǎn)

另一種方式

同時(shí)開(kāi)啟渲染進(jìn)程和主進(jìn)程的調(diào)試,只需要切換到調(diào)試全部的選項(xiàng)即可。注意,此種方式因?yàn)?code>compounds[].configurations配置是并行執(zhí)行的,并不一定能保證渲染進(jìn)程調(diào)試一定能附加到主進(jìn)程調(diào)試成功(估計(jì)是時(shí)機(jī)問(wèn)題),有些時(shí)候會(huì)調(diào)試渲染進(jìn)程不成功。所以,可以采取上面的方式進(jìn)行調(diào)試。

其他技巧

技巧一:代碼片段(snippets)

從擴(kuò)展商店中安裝snippets

@category:"snippets"
復(fù)制代碼

創(chuàng)建全局代碼片段

  • 選擇文件 -> 首選項(xiàng) -> 用戶片段
  • 選擇新建全局代碼片段文件

相關(guān)文章

最新評(píng)論