How can I suppress the "No files matching the pattern" message in ESLint?
Continuous IntegrationEslintContinuous Integration Problem Overview
In my CI setup, I have a test that runs eslint against all JS files. If no JS files exist, it's currently throwing an error. I'd prefer if it'd succeeded when no JS files exist. Is this possible?
$ eslint "./src/assets/scripts/**/*.js"
Oops! Something went wrong! :(
ESLint: 5.7.0.
No files matching the pattern "./src/assets/scripts/**/*.js" were found.
Please check for typing mistakes in the pattern.
ERROR: Job failed: exit code 1
Continuous Integration Solutions
Solution 1 - Continuous Integration
What worked for me was changing single quotes to escaped double quotes
So from:
"lint": "eslint '**/*.{ts,tsx}'"
To:
"lint": "eslint \"**/*.{ts,tsx}\""
The reason is because it depends on the console you are using - possibly the operation system (that's why it can work for you while it's not working for others and via versa) Source: https://dev.to/gruckion/comment/b65c
Solution 2 - Continuous Integration
The --no-error-on-unmatched-pattern
flag was added in v6.8.0
of ESLint.
https://eslint.org/docs/user-guide/command-line-interface#no-error-on-unmatched-pattern
Solution 3 - Continuous Integration
Was able to dig up this closed issue on ESLint's GitHub. Sounds like this is a common problem, and has no good workaround, other than manually checking for the files existence before attempting to lint, as suggested by @user2864740
Solution 4 - Continuous Integration
I have the same error
> No files matching the pattern ".ts," were found
I just removed spaces between types .js, .ts, .tsx
in config and it works.
From:
"lint": "eslint --ignore-path .gitignore --ext .js, .ts, .tsx .",
To
"lint": "eslint --ignore-path .gitignore --ext .js,.ts,.tsx .",