在描述源碼路徑的時候,常常有一些特殊的奇怪的要求。Grunt 經過內建的 node-glob 和 minimatch 庫提供了文件名的擴展機制。node
常見的通配符以下:git
好比,foo/*.js 將會匹配 foo/ 文件夾下面的全部 .js 擴展名的文件,而 foo/**/*.js 則會匹配在 foo/ 目錄下任意級別子目錄中的 .js 擴展名的文件。github
使用 ! 來不包含特定的文件,須要注意的是 ! 須要是路徑的第一個字符。數組
爲了更加簡單地通配符,Grunt 容許使用數組來表示通配符。Grunt 將會安裝順序處理,返回的結果是惟一的。ui
例如this
// You can specify single files, 簡單文件名: {src: 'foo/this.js', dest: ...} // Or arrays of files, 使用數組表示多個文件名: {src: ['foo/this.js', 'foo/that.js', 'foo/the-other.js'], dest: ...} // Or you can generalize with a glob pattern, 使用通配符: {src: 'foo/th*.js', dest: ...} // This single node-glob pattern, 單個通配符: {src: 'foo/{a,b}*.js', dest: ...} // Could also be written like this, 經過數組,使用多個通配符: {src: ['foo/a*.js', 'foo/b*.js'], dest: ...} // All .js files, in foo/, in alpha order, 全部的 .js 文件,按照字符順序: {src: ['foo/*.js'], dest: ...} // Here, bar.js is first, followed by the remaining files, in alpha order, 第一個是 bar.js, 其它文件按字母順序 : {src: ['foo/bar.js', 'foo/*.js'], dest: ...} // All files except for bar.js, in alpha order, 除了 bar.js 以外的文件,按字母順序: {src: ['foo/*.js', '!foo/bar.js'], dest: ...} // All files in alpha order, but with bar.js at the end, 全部文件按照字母順序,bar.js 在最後. {src: ['foo/*.js', '!foo/bar.js', 'foo/bar.js'], dest: ...} // Templates may be used in filepaths or glob patterns, 能夠嵌入表達式: {src: ['src/<%= basename %>.js'], dest: 'build/<%= basename %>.min.js'} // But they may also reference file lists defined elsewhere in the config, 引用其它地方定義的文件列表: {src: ['foo/*.js', '<%= jshint.all.src %>'], dest: ...}