是否存在用于在node-gyp中列出源的通配符机制

Jay*_*esh 11 node-gyp

我正在binding.gyp为我的新node.js模块编写文件.我将所有源文件都放在src/子目录下.我想在构建模块时使用所有这些.我不是每次添加新的cpp文件时都修改binding.gyp,而是希望通过一些通配符机制列出所有cpp文件.node-gyp支持吗?像跟随的东西(这是行不通的

{
  'targets' : [
      {
          'target_name' : 'mymod',
          'sources' : 'src/*.cpp'
      }
   ]
}
Run Code Online (Sandbox Code Playgroud)

我查看了https://code.google.com/p/gyp/wiki/InputFormatReference,但没有找到任何有用的内容.

Jay*_*esh 24

弄清楚了

{
  'targets' : [
      {
          'target_name' : 'mymod',
          'sources' : [ '<!@(ls -1 src/*.cpp)' ],
      }
   ]
}
Run Code Online (Sandbox Code Playgroud)

看看这个链接

更新

上述解决方案无法跨平台移植.这是便携版:

{
  'targets' : [
      {
          'target_name' : 'mymod',
          'sources' : [  "<!@(node -p \"require('fs').readdirSync('./src').map(f=>'src/'+f).join(' ')\")" ],
      }
   ]
}
Run Code Online (Sandbox Code Playgroud)

本质上,它ls使用节点fs模块列出目录内容的Javascript代码替换特定于平台的目录列表命令().