使用NodeJS整理文件

时间:2014-01-25 19:13:16

标签: node.js coffeescript command-line-interface glob

我正在编写一个运行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中的某个地方有一个很好的库,我可以使用或者使用其他一些技巧?

0 个答案:

没有答案