From b9c61b0aa8b2131c225a6e94cccac6e6b074c126 Mon Sep 17 00:00:00 2001 From: Justin Ridgewell Date: Wed, 24 Mar 2021 19:51:43 -0400 Subject: [PATCH] =?UTF-8?q?=F0=9F=8F=97=EF=B8=8F=20=20Ignore=20.babel-cach?= =?UTF-8?q?e=20directory=20(#33449)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Ignore .babel-cache directory Also ensure prettier respects its .prettierignore file, which for some reason it ignores when using the API vs the CLI. * Add ignore functionality to getFilesToCheck * Separate ignore file param --- .eslintignore | 1 + .prettierignore | 10 ++++++++-- build-system/common/utils.js | 14 ++++++++++---- build-system/tasks/prettify.js | 5 ++++- build-system/test-configs/config.js | 3 --- package.json | 1 + 6 files changed, 24 insertions(+), 10 deletions(-) diff --git a/.eslintignore b/.eslintignore index 26d50b427610..c5d98a4a942e 100644 --- a/.eslintignore +++ b/.eslintignore @@ -6,6 +6,7 @@ dist.tools/** firebase/** out/** test/coverage/** +.babel-cache/** # Code directories build-system/tasks/visual-diff/snippets/*.js diff --git a/.prettierignore b/.prettierignore index cce02790608f..266039ad65ea 100644 --- a/.prettierignore +++ b/.prettierignore @@ -1,2 +1,8 @@ -package.json -package-lock.json +.babel-cache/** +.github/ISSUE_TEMPLATE/** +**/package*.json +**/node_modules/** +**/build/** +**/dist/** +**/dist.3p/** +**/dist.tools/** diff --git a/build-system/common/utils.js b/build-system/common/utils.js index b4e38829aa71..000339991fe4 100644 --- a/build-system/common/utils.js +++ b/build-system/common/utils.js @@ -19,6 +19,7 @@ const experimentsConfig = require('../global-configs/experiments-config.json'); const fs = require('fs-extra'); const globby = require('globby'); const {clean} = require('../tasks/clean'); +const {default: ignore} = require('ignore'); const {doBuild} = require('../tasks/build'); const {doDist} = require('../tasks/dist'); const {gitDiffNameOnlyMaster} = require('./git'); @@ -117,21 +118,26 @@ function getFilesFromArgv() { * * @param {!Array} globs * @param {Object=} options + * @param {(string|Array)=} ignoreRules * @return {!Array} */ -function getFilesToCheck(globs, options = {}) { +function getFilesToCheck(globs, options = {}, ignoreRules = undefined) { + const ignored = ignore(); + if (ignoreRules) { + ignored.add(ignoreRules); + } if (argv.files) { - return logFiles(getFilesFromArgv()); + return logFiles(ignored.filter(getFilesFromArgv())); } if (argv.local_changes) { - const filesChanged = getFilesChanged(globs); + const filesChanged = ignored.filter(getFilesChanged(globs)); if (filesChanged.length == 0) { log(green('INFO: ') + 'No files to check in this PR'); return []; } return logFiles(filesChanged); } - return globby.sync(globs, options); + return ignored.filter(globby.sync(globs, options)); } /** diff --git a/build-system/tasks/prettify.js b/build-system/tasks/prettify.js index 7d2a4faf5583..30573cc264bb 100644 --- a/build-system/tasks/prettify.js +++ b/build-system/tasks/prettify.js @@ -46,7 +46,10 @@ const tempDir = tempy.directory(); * Checks files for formatting (and optionally fixes them) with Prettier. */ async function prettify() { - const filesToCheck = getFilesToCheck(prettifyGlobs, {dot: true}); + // Prettier ignores the `.prettierignore` file when using the API like we + // are. So we need to filter our files down before feeding them to the API. + const ignore = fs.readFileSync('.prettierignore', 'utf8'); + const filesToCheck = getFilesToCheck(prettifyGlobs, {dot: true}, ignore); if (filesToCheck.length == 0) { return; } diff --git a/build-system/test-configs/config.js b/build-system/test-configs/config.js index 5de71237bc06..dd06efd0616f 100644 --- a/build-system/test-configs/config.js +++ b/build-system/test-configs/config.js @@ -176,9 +176,6 @@ const prettifyGlobs = [ '**/*.json', '**/OWNERS', '**/*.md', - '!**/package*.json', - '!.github/ISSUE_TEMPLATE/**', - '!**/{node_modules,build,dist,dist.3p,dist.tools}/**', ]; /** diff --git a/package.json b/package.json index 6562d2cc7722..c8e8996f84ca 100644 --- a/package.json +++ b/package.json @@ -116,6 +116,7 @@ "globby": "11.0.2", "gulp-connect": "5.7.0", "html-minifier": "4.0.0", + "ignore": "5.1.8", "istanbul-middleware": "0.2.2", "jest-dot-reporter": "1.0.12", "jest-silent-reporter": "0.5.0",