iT邦幫忙

2022 iThome 鐵人賽

DAY 18
0

VS Code Extensions

VSCode 的市集提供了相當多的 Extensions 能增進工程師的開發效能,Extensions 就像把妹神器,會幫你產出撩妹金句、決定今日穿搭 OOTD、推薦節日可以吃的餐廳或可以送的禮物。

以程式開發來說,各種語言的 Extension Pack,能快速協助我們進行相關語言的開發

  • React Extension Pack
  • Node.js Extension Pack
  • Extension Pack for Java
  • Spring Boot Extension Pack

協助版本控制的相關外掛則讓版控更親民方便

  • GitLens: 方便看出哪一行是誰在什麼時候寫的
  • Git Graph: 圖像化 Git 紀錄,熟悉後在操作上會更方便

這幾年工作下來,會發現各式語法其實蠻多的且不斷在更新,有些細節其實無法全部都記得非常清楚,這時候透過自動完成可以加速開發效率

  • Auto Close Tag: 寫網頁或是 jsx 的時候很方便,可以少打很多東西
  • Auto Rename Tag: 協助把對稱的自動改好很方便
  • Auto Import: 自動 import 要使用的元件或 function
  • Path Intellisense: 引入檔案的時候,如果資料都有照邏輯擺,那這個就能加速找檔案過程
  • SCSS IntelliSense: 協助寫一些像是 @include 的語法

語法樣板提供了一個偷吃步,快速的產生相關樣板,開發時只需要進行填空

  • HTML Snippets: 有時候在切單純一頁 html 的時候好用
  • Reactjs code snippets: 較新的語法可能未支援,優點打 rccp 就可以自動完成元件架構
  • React Hooks Snippets

CSS in JS

  • vscode-styled-components
  • vscode-styled-jsx: React 開發必備

記錄代辦事項

  • TODO Highlight、TODO Tree: 任務標籤

在編輯器中將色碼上色的外掛

  • Color Highlight: 色碼會幫我們上色

檢查拼字錯誤的外掛

  • Code Spell Checker

Linting & Formatting

  • Lint 可以幫助團隊減少錯誤
    • ESLint: 是 linter 用來檢視程式碼的品質,找到可能的錯誤並提示,建議搭配安裝 airbnb 相關配置
    • StyleLint
    • Sass Lint
    • markdownlint
  • Formatting 可以統一大家的排版
    • Prettier: 偏向 code formatter 主要專注在排版
    • Beautify css/sass/scss/less
  • Code Spell Checker: 常常英文拼錯但人腦還是可以辨識,改錯字就靠外掛了

VS Code ESlint + Prettier 厲害的地方在也可以套用 airbnb 的 coding style,不然每個人加入團隊前光看 coding style rule 就飽了 Orz

Prettier

會需要使用 npm 進行 node_modules 的安裝,相關的使用說明可以參考這篇 NPM 常用指令教學

  1. npm i prettier -D
  2. 加入 .prettierrc
{
  "tabWidth": 2,
  "singleQuote": true
}
  1. Format 可以設定自動跟手動

ctrl shift + P 執行 Open Workspace Settings(JSON) 編輯 settings.json

讓 VS code 在存檔時自動格式化文件

{
  "editor.formatOnSave": true
}

手動的話則建議加入 npm script 較方便

{
  "scripts": {
    "prittier-fix": "prettier --write \"./{src}/**/{*.js,*.jsx}\""
  }
}

ESLint

  1. npx install-peerdeps --dev eslint-config-airbnb
  2. npm i -D eslint-config-prettier eslint-plugin-prettier
  3. 加入 .eslintrc.js.eslintrc 在根目錄
const fs = require("fs");
const path = require("path");

// 把 ptettierrc 讀進來套用
const prettierOptions = JSON.parse(
  fs.readFileSync(path.resolve(__dirname, ".ptettierrc"), "utf8")
);

module.export = {
  // ESLint 預設警告是紅色 (danger) 顯示。
  // Prettier 預設警告也是紅色 (danger) 顯示,不跟 ESLint 混淆,因此改成黃色 (warning) 顯示。
  plugins: ["prettier"],
  rules: {
    "prettier/prettier": ["warn", prettierOptions],
  },
  // 要把 prettier 放在最後面。
  extends: [
    // ...,
    "prettier",
  ],
};

手動執行 ESLint 也建議加入 npm script 較方便

{
  "scripts": {
    "lint-fix": "eslint . --ext .js --fix"
  }
}

有了這個工具就可以快速的自動提示,也可以依照需求 disable 掉一些短時間還來不及改的寫法

  • "off" 或 0-關閉規則
  • "warn" 或 1-開啟規則,使用警告級別的錯誤:warn(不會導致程序退出)
  • "error" 或 2-開啟規則,使用錯誤級別的錯誤:error(當被觸發的時候,程序會退出)

詳細可以看 ESLint 網站上的配置教學,比較特別的是也有支援 jsdoc 的提示,對於事情雜亂一堆文件還沒補,有時補東就忘了西的人來說,真的是個優秀的發明。

{
  "extends": "airbnb",
  "env": {
    "browser": true,
    "node": true,
    "es6": true,
    "mocha": true
  },
  "rules": {
    "one-var": 0,
    "no-var": 0,
    "prefer-template": 0,
    "valid-jsdoc": [
      "error",
      {
        "requireReturn": true,
        "requireReturnType": true,
        "requireParamDescription": true,
        "requireReturnDescription": true
      }
    ],
    "require-jsdoc": [
      "error",
      {
        "require": {
          "FunctionDeclaration": true,
          "MethodDefinition": true,
          "ClassDeclaration": true
        }
      }
    ]
  }
}

上一篇
用 HTTP Cookies 記住你的曾經 (17)
下一篇
npm 入門到進階常用指令與版本規則教學 (19)
系列文
前端三分鐘 X 從把妹角度理解前後端如何和平相處30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言