From b3e509b7d4548a7f440b0cabbb1459e1ab0c3ff2 Mon Sep 17 00:00:00 2001 From: Alois Klink Date: Sun, 5 Feb 2023 19:25:57 +0000 Subject: [PATCH] build(lint): cache eslint with strategy content Cache eslint using `--cache-strategy content` instead of the default `--cache-strategy metadata`. By default, `eslint` uses the file metadata (e.g. modification time) to detect when the cache should be invalidated. However, this is not efficient with `git`, since git constantly changes the modification time, e.g. running `git switch main && git switch original-branch` would not change the file contents, but would change the file mtimes and force eslint to re-lint everything. Using the file contents is slower (~3% for me), but more resilient. See https://eslint.org/docs/latest/use/command-line-interface#--cache-strategy --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index f6130fa47..e7cb9bdf0 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,7 @@ "build": "pnpm run -r clean && concurrently \"pnpm build:vite\" \"pnpm build:types\"", "dev": "concurrently \"pnpm build:vite --watch\" \"ts-node-esm .vite/server.ts\"", "release": "pnpm build", - "lint": "eslint --cache --ignore-path .gitignore . && pnpm lint:jison && prettier --cache --check .", + "lint": "eslint --cache --cache-strategy content --ignore-path .gitignore . && pnpm lint:jison && prettier --cache --check .", "lint:fix": "eslint --fix --ignore-path .gitignore . && prettier --write . && ts-node-esm scripts/fixCSpell.ts", "lint:jison": "ts-node-esm ./scripts/jison/lint.mts", "cypress": "cypress run",