在Gruntfile.js
,我有:Gruntfile.js路徑中的{{*}}是什麼意思?
watch: {
styles: {
files: [
'<%= yeoman.app %>/styles/{,*/}*.less'
],
tasks: ['copy:styles', 'autoprefixer']
}
}
對於路徑,這是什麼意思{,*/}
確實?它與使用雙星號**/
有什麼不同?
在Gruntfile.js
,我有:Gruntfile.js路徑中的{{*}}是什麼意思?
watch: {
styles: {
files: [
'<%= yeoman.app %>/styles/{,*/}*.less'
],
tasks: ['copy:styles', 'autoprefixer']
}
}
對於路徑,這是什麼意思{,*/}
確實?它與使用雙星號**/
有什麼不同?
該模式在yeoman模板中被廣泛使用:它意味着在文件夾層次結構中只查看一個層次。它主要用於性能方面的原因,因爲同時觀看太多文件可能會很慢(甚至不可能)。
我相信你在那裏使用minimatch pattern。
雙星號是導致遞歸到子目錄的glob。
單個星號只匹配當前目錄中的0個或更多字符(它匹配除斜槓字符以外的每個字符)。
例如,a/**/d將匹配a/b/c/d。
這些globbing patterns的咕嚕,由node-glob和minimatch庫支持。
基本上是:
*
任意數目的字符,但不/
**
匹配任何數目的字符,包括/
,只要它是在一個道部分的唯一匹配{}
允許用逗號分隔的「或」表達式列表所以,styles/{,*/}*.less
以下文件匹配:
styles
目錄styles
目錄(但沒有更深)這是更正確的解釋 – Willa
謝謝!爲我節省2個小時。 ;) –
其他答案已經回答了{,*/}*
是什麼意思。
但是**/
和{,*/}*
之間的差異是文件夾深度。
/styles/{,*/}*.less
已被劃分成兩個情況
/styles/*.less
/styles/*/*.less
例如
/styles/{,*/}*.less
將匹配/styles/x.less
(1情況)
/styles/{,*/}*.less
還將匹配/styles/test/x.less
(2)的情況
但/styles/{,*/}*.less
無法比擬/styles/test/test1/x.less
但/styles/**/*.less
可以特別提到了約曼做
謝謝。你有沒有參考性能問題? –
https://github.com/yeoman/generator-webapp/pull/20例如 – vkurchatkin
感謝您的參考,但似乎更關心的是文件監視的總數,而不考慮目錄的深度。 –