現已釋出!閱讀關於 11 月新增功能和修復的內容。

從 TSLint 遷移到 ESLint

TSLint 過去是推薦的 linter,但現在 TSLint 已被棄用,ESLint 將接管其職責。本文將幫助您從 TSLint 遷移到 ESLint。

ESLint:安裝

您需要安裝 ESLint。ESLint 不原生支援 TypeScript,因此您還需要安裝 eslint-typescript-support

npm install --save-dev eslint @typescript-eslint/parser @typescript-eslint/eslint-plugin

或者,如果您使用 yarn 作為包管理器

yarn add eslint @typescript-eslint/parser @typescript-eslint/eslint-plugin --dev

上面的命令添加了 ESLint、一個使 ESLint 理解 TypeScript 的解析器,以及一些特定於 TypeScript 的規則。

現在,為了簡化實際遷移,請執行 tslint-to-eslint-config 工具。該工具將讀取您的 TSLint 配置並從中建立“最接近”的 ESLint 配置。

npx tslint-to-eslint-config

此命令 下載並執行該工具以執行遷移。有關更多選項,請檢視該工具的 使用指南

現在應該會有一個新的 .eslintrc.js 檔案、一個日誌檔案 (tslint-to-eslint-config.log),並且很可能還會修改其他檔案,例如 .vscode/settings.json。請仔細檢查更改,特別是對現有檔案所做的更改,並檢視日誌檔案。

ESLint:配置

.eslintrc.js 檔案通常足以開始使用,但 parserOptions.project 屬性很可能仍然設定為您的 tsconfig.json 檔案。這意味著 ESLint 規則可以使用語義資訊,例如,這個變數是字串還是數字陣列?此配置啟用了某些強大的規則,但意味著 ESLint 的計算時間會更長。擴充套件的預設規則不需要語義資訊,除非您添加了需要語義資訊的規則,否則我們建議您刪除 parserOptions.project 屬性。

ESLint:執行

您現在已準備好執行 ESLint,但在執行此操作之前,我們建議您停用 TSLint。為此,請開啟“擴充套件”檢視,然後在 TSLint 擴充套件的上下文選單中選擇“停用”。

現在是時候進行 lint 了!使用此命令:eslint -c .eslintrc.js --ext .ts <mySrcFolder>(注意 --ext .ts 選項,它告訴 ESLint 檢視 TypeScript 檔案)。我們建議將其放入 package.json 檔案的 scripts 部分,如下所示

"lint": "eslint -c .eslintrc.js --ext .ts <mySrcFolder>"

要將 ESLint 與 Visual Studio Code 整合,請執行以下操作:

  • 安裝 ESLint 擴充套件。
  • 透過“任務: 配置任務”命令建立一個任務,然後選擇“npm: lint”。
  • 在生成的 tasks.json 檔案中,將問題匹配器配置為 $eslint-stylish

提示:ESLint 在處理事情的方式上有時會“更正確”,您可能會看到以前沒有的警告,例如呼叫缺少的分號。嘗試使用 --fix 選項讓 ESLint 為您清理。

TSLint:移除

恭喜。您現在應該已經擁有一個工作的 ESLint 設定,是時候進行清理了。

TSLint 的移除取決於您的專案,但通常包括以下步驟:

  • 更新 .vscode/extensions.json 以推薦 ESLint 擴充套件而不是 TSLint。

    "recommendations": [
      "dbaeumer.vscode-eslint"
    ]
    
  • 刪除 tslint.json 檔案。

  • package.json 檔案中刪除對 tslint 的依賴。

  • 使用 npm uninstall tslint 解除安裝 TSLint。

© . This site is unofficial and not affiliated with Microsoft.