You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Grunt copy任务执行报错:path参数类型错误求助

问题排查与解决

我帮你找到了问题的核心——不是路径里的@符号引发的错误,而是你在autoCompleteJS和autoCompleteCSS这两个Copy任务中,错误地将dest配置成了数组格式,而Grunt的grunt-contrib-copy插件要求dest必须是字符串类型的路径。

具体问题分析

看你当前的任务配置:

autoCompleteJS: {
    expand: true,
    cwd: "wwwroot/lib/@tarekraafat/autocomplete.js/dist/js",
    src: ['autoComplete.min.js'],
    dest: ['wwwroot/js'] // 这里用了数组,是错误的写法!
},
autoCompleteCSS: {
    expand: true,
    cwd: "wwwroot/lib/@tarekraafat/autocomplete.js/dist/css",
    src: ['autoComplete.css'],
    dest: ['wwwroot/css'] // 同样是数组格式,触发了类型错误
}

而你能正常运行的copy:dist任务中,dest是字符串类型的paths.cssOutput,这就是它能正常工作的原因。当dest被设置为数组时,Grunt内部处理路径的工具函数会收到一个数组而非预期的字符串,直接抛出了The "path" argument must be of type string. Received type object的警告。

修复方案

把两个任务里的dest从数组改成字符串即可:

autoCompleteJS: {
    expand: true,
    cwd: "wwwroot/lib/@tarekraafat/autocomplete.js/dist/js",
    src: ['autoComplete.min.js'],
    dest: "wwwroot/js" // 改为字符串路径
},
autoCompleteCSS: {
    expand: true,
    cwd: "wwwroot/lib/@tarekraafat/autocomplete.js/dist/css",
    src: ['autoComplete.css'],
    dest: "wwwroot/css" // 改为字符串路径
}

另外建议统一使用你定义好的paths变量来维护路径,这样更便于后续维护:

autoCompleteJS: {
    expand: true,
    cwd: paths.bower_components + "/@tarekraafat/autocomplete.js/dist/js",
    src: ['autoComplete.min.js'],
    dest: paths.webroot + "js"
},
autoCompleteCSS: {
    expand: true,
    cwd: paths.bower_components + "/@tarekraafat/autocomplete.js/dist/css",
    src: ['autoComplete.css'],
    dest: paths.cssOutput
}

验证修复

修改完成后,单独运行copy:autoCompleteJS或copy:autoCompleteCSS任务,应该就能正常执行,不会再出现路径类型错误的警告了。

内容的提问来源于stack exchange,提问作者MSRS

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 09:00:41