使用 Grunt 忽略文件数组
Ignore array of files with Grunt
如果我的 Gruntfile 中有一组文件,如下所示:
var jsFiles = [
'src/js/abc.js',
'src/js/def.js'
]
如何排除此数组中的每个文件而不必在每个文件前添加 !
?这种模式似乎对我不起作用:
!jsFiles
我也希望能够做到 !<%= project.jsFiles %>
其中 <%= project.jsFiles %>
是一个文件数组。
Stack Overflow 上有许多类似的问题,但据我所知,没有一个解决忽略文件数组的问题。
取反文件数组:
如果你想否定一个文件列表,像这样:
var jsFiles = [
'src/js/abc.js',
'src/js/def.js'
];
您可以创建一个函数来添加“!”:
function addErase(jsFiles){
var arr = [];
jsFiles.forEach(function(element){
arr.push("!" + element);
});
return arr;
}
然后你可以转换你的数组:
var jsFileErase = addErase(jsFiles);
// ['!src/js/abc.js',
// '!src/js/abc.js']
如果你想把列表放在package.json:
Package.json:
{
"name": "foo",
"version": "0.0.1",
"jsFiles":[
'src/js/abc.js',
'src/js/def.js'
],
...
里面 Gruntfile.js:
var project = require('./package.json');
var jsFiles = project.jsFiles;
然后你可以用函数addErase取消所有文件
否定文件夹内的所有元素:
如果你想否定文件夹内的所有元素,你需要把“!”在路径之前和路径末尾的“/**/*”:
示例:
var jsFile = '!src/js/**/*'
如果我的 Gruntfile 中有一组文件,如下所示:
var jsFiles = [
'src/js/abc.js',
'src/js/def.js'
]
如何排除此数组中的每个文件而不必在每个文件前添加 !
?这种模式似乎对我不起作用:
!jsFiles
我也希望能够做到 !<%= project.jsFiles %>
其中 <%= project.jsFiles %>
是一个文件数组。
Stack Overflow 上有许多类似的问题,但据我所知,没有一个解决忽略文件数组的问题。
取反文件数组:
如果你想否定一个文件列表,像这样:
var jsFiles = [
'src/js/abc.js',
'src/js/def.js'
];
您可以创建一个函数来添加“!”:
function addErase(jsFiles){
var arr = [];
jsFiles.forEach(function(element){
arr.push("!" + element);
});
return arr;
}
然后你可以转换你的数组:
var jsFileErase = addErase(jsFiles);
// ['!src/js/abc.js',
// '!src/js/abc.js']
如果你想把列表放在package.json:
Package.json:
{
"name": "foo",
"version": "0.0.1",
"jsFiles":[
'src/js/abc.js',
'src/js/def.js'
],
...
里面 Gruntfile.js:
var project = require('./package.json');
var jsFiles = project.jsFiles;
然后你可以用函数addErase取消所有文件
否定文件夹内的所有元素:
如果你想否定文件夹内的所有元素,你需要把“!”在路径之前和路径末尾的“/**/*”:
示例:
var jsFile = '!src/js/**/*'