Исключить node_modules рекурсивно - PullRequest
1 голос
/ 29 июня 2019

Я столкнулся с конкретной проблемой при настройке Firebase в каталоге моего проекта.

Первоначально иерархию проекта можно было бы суммировать следующим образом:

.
./src
./src/my_code.js
./src/my_code.test.js
./node_modules
./node_modules/...
./package.json

Для запуска моих тестов я использую мокко.

На этом сайте я нашел действительно полезный regexp , способный сопоставлять все файлы * .test.js во всей иерархии проекта, кроме node_modules"branch":

./{,!(node_modules)/**}/*test.js

Следующим шагом для меня была инициализация Firebase Functions & Hosting в каталоге.

Был выбран дизайн для установки папки functions в ./src.

После запуска firebase init и ответа на все вопросы моя папка выглядела так:

.
./src
./src/my_code.js
./src/my_code.test.js
// ===== NEW =====
./src/functions
./src/functions/index.js
./src/functions/index.test.js
./src/functions/node_modules
./src/functions/node_modules/...
./src/functions/package.json
// ===============
./node_modules
.node_modules/...
./package.json

Проблема заключается в том, что регулярное выражение, по-видимому, не исключает папку ./src/functions/node_modules .

Мне не очень удобно расширять это классное регулярное выражение, не зная, нужно ли мне куда-нибудь добавить ** или !(src/functions/node_modules).

1 Ответ

0 голосов
/ 30 июня 2019

Я глубоко изучил проблему этого mochajs .

Прежде всего, кажется, что как @Wiktor упомянул в комментариях к моему вопросу, ./{,!(node_modules)/**}/*test.js не регулярное выражение, а глобус.

Пока я не исследовал эту концепцию, потому что mochajs теперь реализует функцию флага --exclude.

Мое решениевыглядит следующим образом: mocha \"./**/*test.js\" --exclude \"./**/node_modules/**\".

...