diff --git a/.eslintignore b/.eslintignore deleted file mode 100644 index 06a1beac6..000000000 --- a/.eslintignore +++ /dev/null @@ -1,5 +0,0 @@ -!.* -coverage* -lib -node_modules -pnpm-lock.yaml diff --git a/.eslintrc.cjs b/.eslintrc.cjs index b7d32278c..a2b374da6 100644 --- a/.eslintrc.cjs +++ b/.eslintrc.cjs @@ -22,6 +22,7 @@ module.exports = { "plugin:regexp/recommended", "plugin:vitest/recommended", ], + ignorePatterns: ["!.*", "coverage*", "lib", "node_modules", "pnpm-lock.yaml"], overrides: [ { extends: ["plugin:markdown/recommended"], diff --git a/.github/workflows/test-initialize.yml b/.github/workflows/test-initialize.yml index 284f6092b..3314db55a 100644 --- a/.github/workflows/test-initialize.yml +++ b/.github/workflows/test-initialize.yml @@ -6,7 +6,7 @@ jobs: - uses: ./.github/actions/prepare - run: pnpm run build - run: pnpm run test:initialize - # The template's .eslintignore only ignores coverage, not coverage-* + # The template's ESLint ignorePatterns only ignores coverage, not coverage-* # https://github.com/JoshuaKGoldberg/create-typescript-app/issues/1131 - if: always() run: mv coverage coverage-initialize diff --git a/.github/workflows/test-migrate.yml b/.github/workflows/test-migrate.yml index 3ccc3cc8e..38cfe7188 100644 --- a/.github/workflows/test-migrate.yml +++ b/.github/workflows/test-migrate.yml @@ -6,7 +6,7 @@ jobs: - uses: ./.github/actions/prepare - run: pnpm run build - run: pnpm run test:migrate - # The template's .eslintignore only ignores coverage, not coverage-* + # The template's ESLint ignorePatterns only ignores coverage, not coverage-* # https://github.com/JoshuaKGoldberg/create-typescript-app/issues/1131 - if: always() run: mv coverage coverage-migrate diff --git a/script/__snapshots__/migrate-test-e2e.js.snap b/script/__snapshots__/migrate-test-e2e.js.snap index 8a090261b..f1b4050ff 100644 --- a/script/__snapshots__/migrate-test-e2e.js.snap +++ b/script/__snapshots__/migrate-test-e2e.js.snap @@ -1,17 +1,5 @@ // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html -exports[`expected file changes > .eslintignore 1`] = ` -"--- a/.eslintignore -+++ b/.eslintignore -@@ ... @@ - !.* --coverage* -+coverage - lib - node_modules - pnpm-lock.yaml" -`; - exports[`expected file changes > .eslintrc.cjs 1`] = ` "--- a/.eslintrc.cjs +++ b/.eslintrc.cjs @@ -29,6 +17,15 @@ exports[`expected file changes > .eslintrc.cjs 1`] = ` /** @type {import("@types/eslint").Linter.Config} */ module.exports = { env: { +@@ ... @@ module.exports = { + "plugin:regexp/recommended", + "plugin:vitest/recommended", + ], +- ignorePatterns: ["!.*", "coverage*", "lib", "node_modules", "pnpm-lock.yaml"], ++ ignorePatterns: ["!.*", "coverage", "lib", "node_modules", "pnpm-lock.yaml"], + overrides: [ + { + extends: ["plugin:markdown/recommended"], @@ ... @@ module.exports = { rules: { // These off-by-default rules work well for this repo and we like them on. diff --git a/script/migrate-test-e2e.js b/script/migrate-test-e2e.js index 97c646a3e..595b7ab49 100644 --- a/script/migrate-test-e2e.js +++ b/script/migrate-test-e2e.js @@ -9,7 +9,6 @@ import packageData from "../package.json" assert { type: "json" }; const filesExpectedToBeChanged = [ "README.md", "knip.json", - ".eslintignore", ".eslintrc.cjs", ".github/workflows/test.yml", ".gitignore", diff --git a/src/steps/clearUnnecessaryFiles.ts b/src/steps/clearUnnecessaryFiles.ts index 0679ce81f..33845584b 100644 --- a/src/steps/clearUnnecessaryFiles.ts +++ b/src/steps/clearUnnecessaryFiles.ts @@ -12,6 +12,7 @@ const globPaths = [ ".github/codecov.yml", ".babelrc", ".npmignore", + ".eslintignore", ".eslintrc", "CODE_OF_CONDUCT.md", "CONTRIBUTING.md", diff --git a/src/steps/writing/creation/createDotESLintignore.test.ts b/src/steps/writing/creation/createDotESLintignore.test.ts deleted file mode 100644 index 8c9fb7e2e..000000000 --- a/src/steps/writing/creation/createDotESLintignore.test.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { describe, expect, it } from "vitest"; - -import { createDotESLintignore } from "./createDotESLintignore.js"; - -describe("createDotESLintignore", () => { - it("creates an ignore file with coverage when excludeTests is false", () => { - const actual = createDotESLintignore({ excludeTests: false }); - - expect(actual).toMatchInlineSnapshot(` - "!.* - coverage - lib - node_modules - pnpm-lock.yaml - " - `); - }); - - it("creates an ignore file without coverage when excludeTests is true", () => { - const actual = createDotESLintignore({ excludeTests: true }); - - expect(actual).toMatchInlineSnapshot(` - "!.* - lib - node_modules - pnpm-lock.yaml - " - `); - }); -}); diff --git a/src/steps/writing/creation/createDotESLintignore.ts b/src/steps/writing/creation/createDotESLintignore.ts deleted file mode 100644 index ad0d4d921..000000000 --- a/src/steps/writing/creation/createDotESLintignore.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { Options } from "../../../shared/types.js"; -import { formatIgnoreFile } from "./formatters/formatIgnoreFile.js"; - -export function createDotESLintignore(options: Pick) { - return formatIgnoreFile( - [ - "!.*", - ...(options.excludeTests ? [] : ["coverage"]), - "lib", - "node_modules", - "pnpm-lock.yaml", - ].filter(Boolean), - ); -} diff --git a/src/steps/writing/creation/createESLintRC.test.ts b/src/steps/writing/creation/createESLintRC.test.ts index 738dbd4f0..a0361ad5d 100644 --- a/src/steps/writing/creation/createESLintRC.test.ts +++ b/src/steps/writing/creation/createESLintRC.test.ts @@ -58,6 +58,7 @@ describe("createESLintRC", () => { node: true, }, extends: ["eslint:recommended", "plugin:n/recommended"], + ignorePatterns: ["!.*", "lib", "node_modules", "pnpm-lock.yaml"], overrides: [ { extends: ["plugin:@typescript-eslint/recommended"], @@ -124,6 +125,7 @@ describe("createESLintRC", () => { "plugin:regexp/recommended", "plugin:vitest/recommended", ], + ignorePatterns: ["!.*", "coverage", "lib", "node_modules", "pnpm-lock.yaml"], overrides: [ { extends: ["plugin:markdown/recommended"], diff --git a/src/steps/writing/creation/createESLintRC.ts b/src/steps/writing/creation/createESLintRC.ts index a57baa9d5..05f056c58 100644 --- a/src/steps/writing/creation/createESLintRC.ts +++ b/src/steps/writing/creation/createESLintRC.ts @@ -24,6 +24,12 @@ module.exports = { options.excludeTests ? "" : `"plugin:vitest/recommended",` } ], + ignorePatterns: [ + "!.*",${options.excludeTests ? "" : `\n "coverage",`} + "lib", + "node_modules", + "pnpm-lock.yaml", + ], overrides: [${ options.excludeLintMd ? "" diff --git a/src/steps/writing/creation/rootFiles.ts b/src/steps/writing/creation/rootFiles.ts index 64042fe27..ff956f58a 100644 --- a/src/steps/writing/creation/rootFiles.ts +++ b/src/steps/writing/creation/rootFiles.ts @@ -1,5 +1,4 @@ import { Options } from "../../../shared/types.js"; -import { createDotESLintignore } from "./createDotESLintignore.js"; import { createDotGitignore } from "./createDotGitignore.js"; import { createESLintRC } from "./createESLintRC.js"; import { createTsupConfig } from "./createTsupConfig.js"; @@ -11,7 +10,6 @@ import { writePackageJson } from "./writePackageJson.js"; export async function createRootFiles(options: Options) { return { ".all-contributorsrc": await writeAllContributorsRC(options), - ".eslintignore": createDotESLintignore(options), ".eslintrc.cjs": await createESLintRC(options), ".gitignore": createDotGitignore(options), ...(!options.excludeLintMd && {