NodeJS&Glob:从一个字符串中的glob选择中排除具有任意文件扩展名的任意文件

时间:2019-01-17 07:02:32

标签: node.js glob

如何从glob中排除具有任意文件扩展名的任意文件 选择吗?

例如:我们需要.pug中的所有.hamlC:\Users\User1\projectname\src\markup文件 除了index.pug(但index.haml是O'K)。

世界

'C:\\Users\\User1\\projectname\\src\\markup\\!(index).+(pug|haml)'

不包括index.pugindex.haml-这不是我们想要的,而且没有足够的灵活性。

让我们说清楚:

  1. 在这个问题中,我们不需要通过glob接收文件-目标只是创建单个 glob 选择。因此,globby(['C:\\Users\\User1\\projectname\\src\\markup\\*.+(pug|haml)', '!C:\\Users\\User1\\projectname\\src\\markup\\index.pug']);之类的解决方案是 与该问题不匹配。
  2. 如果不可能-从glob中排除具有任意扩展名的任意文件-请说出这样的意思。

我尝试了

minimatch(
    'C:\\Users\\bokovgleb\\projectname\\src\\src\\index.pug',
    'C:\\Users\\bokovgleb\\projectname\\src\\src\\*(*.pug|!(index.pug))'
)

基于comment to this answer。返回true ...

1 个答案:

答案 0 :(得分:1)

  

例如:我们需要C:\ Users \ User1 \ projectname \ src \ markup中的所有.pug和.haml文件,但index.pug除外(但index.haml是O'K)。

我想出了

/markup/!(*index){.pug,.haml,index.haml}

您可以使用globster.xyz

对其进行测试