🚀 Feature: Change default value for --ignore
to **/node_modules
, **/.git
#5131
Description
Feature Request Checklist
- I have read and agree to Mocha's Code of Conduct and Contributing Guidelines
- I have searched for related issues and issues with the
faq
label, but none matched my issue. - I want to provide a PR to resolve this
Overview
Looking at the current behavior of Mocha there is an inconsistency between normal execution and watch execution due to different defaults in --ignore
and --watch-ignore
.
I think many devs will agree that picking up data from the node_modules folder is not in their interest when maintaining any project and running tests.
Additionally the node_modules
folder might live in a subfolder (mono repos) but still is subject of being ignored. The current pattern only ignores node_modules
on the level of the mocharc config file.
Suggested Solution
- The default values for the two options should be set to the same value.
- The default patterns should also ignore these folders if they are in subfolders.
Hence the new default for both options should be similar to: ['**/node_modules/', '**/.git/']
Alternatives
If this is the intended behavior and has a reasoning, this reasoning should be documented on the website.
Additional Info
When using NPM workspaces (common in mono-repos) there will be symlinks from node_modules
to the directories of the packages. https://docs.npmjs.com/cli/v10/using-npm/workspaces
Running Mocha with --reporter=json
then shows that rather the tests in the node_modules are picked up than the real working directory.
This can lead to further problems when processing the test reports or in case external tooling relies on these paths.
The problem became visible while working on a VS Code Extension and tests from node_modules were listed.
Activity