Gruntjs 咕噜声:那“咕噜声”;路径“;参数的类型必须为字符串。接收到数组的一个实例

Gruntjs 咕噜声:那“咕噜声”;路径“;参数的类型必须为字符串。接收到数组的一个实例,gruntjs,Gruntjs,我有一个使用grunt的angularjs项目。我有一个讨厌的警告,我无法摆脱。 运行grunt build时,我收到以下警告: “警告:“path”参数必须是string类型。收到数组Use--force的实例以继续。 TypeError[ERR_INVALID_ARG_TYPE]:“path”参数的类型必须为string。收到数组的实例 这是我的grunt文件: /*jslint节点:true*/ "严格使用",; var pkg=require('./package.json'); //

我有一个使用grunt的angularjs项目。我有一个讨厌的警告,我无法摆脱。 运行grunt build时,我收到以下警告:

“警告:“path”参数必须是string类型。收到数组Use--force的实例以继续。
TypeError[ERR_INVALID_ARG_TYPE]:“path”参数的类型必须为string。收到数组的实例
这是我的grunt文件:

/*jslint节点:true*/
"严格使用",;
var pkg=require('./package.json');
//使用排除模式可以显著减缓咕噜声
//而不是创建一组像“***.js”和“*”这样的模式**/节点_模块/**'
//此方法用于为所有子目录创建一组包含模式
//跳过节点\u模块、bower\u组件、dist和any.dir
//这允许用户创建他们想要的任何目录结构。
var createFolderGlobs=函数(fileTypePatterns){
fileTypePatterns=Array.isArray(fileTypePatterns)?fileTypePatterns:[fileTypePatterns];
var ignore=['node_modules','bower_components','dist','temp','test','data','assets'];
var fs=需要('fs');
返回fs.readdirSync(process.cwd())
.map(函数(文件){
if(ignore.indexOf(file)!=-1 | | file.indexOf('.')==0 | | |!fs.lstatSync(file.isDirectory()){
返回null;
}否则{
返回fileTypePatterns.map(函数(模式){
返回文件+'/**/'+模式;
});
}
})
.过滤器(功能(模式){
返回模式;
})
.concat(文件类型模式);
};
module.exports=函数(grunt){
//加载所有grunt任务
要求('load-grunt-tasks')(grunt);
//项目配置。
grunt.initConfig({
连接:{
主要内容:{
选项:{
港口:9000,
开放式:{
目标:'http://localhost:9000/app',
appName:“Chrome”
}
}
}
},
观察:{
主要内容:{
选项:{
利弗雷罗德:没错,
LivereloadError:错误,
产卵:假
},
文件:[createFolderGlobs(['*.js','*.less','*.html']),'!\u SpecRunner.html','!.grunt'],
tasks:[]//在监视事件处理程序期间动态运行所有任务
}
},
jshint:{
主要内容:{
选项:{
jshintrc:“.jshintrc”
},
src:createFolderGlobs('*.js')
}
},
清洁:{
之前:{
src:['dist','temp']
},
之后:{
src:['temp']
}
},
减:{
制作:{
选项:{
},
档案:{
“temp/app.css”:“app/app.less”
}
}
},
NGB模板:{
主要内容:{
选项:{
模块:pkg.name,
htmlmin:“”,
url:函数(url){返回url.replace('app/','');}
},
src:[createFolderGlobs('*.html')、'!app/index.html'、'!\u SpecRunner.html'],
dest:'temp/templates.js'
}
},
副本:{
主要内容:{
档案:[
{cwd:'app',src:['assets/***','i18n/***','android.png','apple.png','error.html','errorHandling.html'],dest:'dist/',expand:true}
/*{src:['bower_components/font awesome/font/**',dest:'dist/',filter:'isFile',expand:true},
{src:['bower_components/bootstrap/font/**',dest:'dist/',filter:'isFile',expand:true}*/
]
},
libimgs:{
档案:[
{src:['bower_components/malihu自定义滚动条插件/mCSB_buttons.png'],dest:'dist/'}
/*{src:['bower_components/font awesome/font/**',dest:'dist/',filter:'isFile',expand:true},
{src:['bower_components/bootstrap/font/**',dest:'dist/',filter:'isFile',expand:true}*/
]
}
},
多姆·芒格:{
阅读:{
选项:{
阅读:[
{选择器:'script[data concat!=“false”]”,属性:'src',writeto:'appjs',isPath:true},
{选择器:'link[rel=“stylesheet”][data concat!=“false”]”,属性:'href',writeto:'appcss'}
]
},
src:'app/index.html'
},
更新:{
选项:{
删除:['script[data remove!=“false”],'link[data remove!=“false”],
附加:[
{选择器:'body',html:'},
{选择器:'head',html:'}
]
},
src:'app/index.html',
dest:'dist/index.html'
}
},
cssmin:{
主要内容:{
src:['temp/app.css',''],
dest:'dist/app.full.min.css'
}
},
康卡特:{
主要内容:{
src:['','',
dest:'temp/app.full.js'
}
},
注:{
主要内容:{
src:'temp/app.full.js',
dest:'temp/app.full.js'
}
},
丑陋的:{
主要内容:{
src:'temp/app.full.js',
dest:'dist/app.full.min.js'
}
},
htmlmin:{
主要内容:{
选项:{
collapseBooleanAttributes:没错,
拼贴空白:对,
RemoveAttribute属性:对,
removeComments:对,
RemovemptyAttributes:没错,
removeScriptTypeAttributes:true,
removeStyleLinkTypeAttributes:true
},
档案:{
'dist/index.html':'dist/index.html'
}
}
},
//Imagemin在Windows上有问题。
//要启用imagemin,请执行以下操作:
//-“npm安装grunt contrib imagemin”
//-本节中的注释
//-在生成任务别名中的“htmlmin”任务之后添加“imagemin”任务
//imagemin:{
//主要内容:{
//档案:[{
//expand:true,cwd:'dist/',
//src:['**/{*.png,*.jpg}'],
//dest:'dist/'
//    }]
//  }
//},
/**
*业力配置。
*/
业力:{
单位:{
configFile:'test/karma.conf.js',
背景:对