我正在编写一个运行nodejs的CLI,基本使用场景是传递许多文件和/或文件夹和/或glob模式;例如:
my-cli file.foo file2.foo
my-cli folder/ folder2/
my-cli folder/**/*.foo folder2/**/*.foo
my-cli file.foo folder/ folder/**/*.foo
等等。我想知道处理任何文件/文件夹/ glob样式输入的高效方法是什么?我正在使用Optimist来获取argv._
(所有参数),这是我的coffeescript
(对不起)代码,用于处理输入的不同变体:
_ = require 'lodash'
fs = require 'fs'
glob = require 'glob'
module.exports = (files) ->
htmlFiles = []
ext = 'html'
files = _.flatten files
_.forEach files, (file) ->
fileExt = file.split('.').pop()
if fileExt isnt ext
if fs.lstatSync(file).isDirectory()
file = if file.charAt(file.length - 1) isnt '/' then file + '/' else file
htmlFiles.concat glob.sync file + '**/*.' + ext
else
htmlFiles.push file
我觉得这有点乱,我希望npm
中的某个地方有一个很好的库,我可以使用或者使用其他一些技巧?