【问题标题】:Exclude node_modules recursively递归排除 node_modules
【发布时间】:2019-11-11 05:35:08
【问题描述】:

我在项目目录中设置 Firebase 时遇到了一个特定问题。

最初,项目的层次结构可以总结如下:

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

为了运行我的测试,我使用的是 mocha。

在这个网站上,我发现了一个非常有用的 regexp 能够匹配整个项目层次结构中的所有 *.test.js 文件,除了 node_modules “分支” :

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

对我来说,下一步是在目录中初始化 Firebase Functions & Hosting。

设计选择在./src 中设置functions 文件夹。

运行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)

【问题讨论】:

  • ./{,!(node_modules)/**}/*test.js 不是正则表达式。看起来像一个球状图案。

标签: javascript regex firebase mocha.js regex-negation


【解决方案1】:

我深入研究了this mochajs' issue

首先,在我的问题 cmets 中,@Wiktor 提到./{,!(node_modules)/**}/*test.js 似乎不是正则表达式,而是一个全局变量。

我暂时没有进一步研究这个概念,因为mochajs 现在实现了--exclude 标志功能。

我的解决方案如下:mocha \"./**/*test.js\" --exclude \"./**/node_modules/**\"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-11-04
    • 2015-03-07
    • 2016-01-05
    • 2016-09-15
    • 1970-01-01
    • 1970-01-01
    • 2020-03-20
    相关资源
    最近更新 更多