首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Gruntfile.js警告:“路径”参数必须是字符串类型。接收到的类型对象使用--继续执行强制操作

Gruntfile.js警告:“路径”参数必须是字符串类型。接收到的类型对象使用--继续执行强制操作
EN

Stack Overflow用户
提问于 2019-12-30 14:36:48
回答 1查看 2.5K关注 0票数 2

我在执行一项繁重的复制任务时遇到了问题。我在package.json中指定了一个库,如下所示

代码语言:javascript
运行
复制
"@tarekraafat/autocomplete.js": "^7.2.0"

并声明在Gruntfile.js中复制任务,如下所示

代码语言:javascript
运行
复制
var paths = {
    webroot: "wwwroot/"
};

// destination css path
paths.cssOutput = paths.webroot + "css";

// where to find bower resources
paths.bower_components = paths.webroot + "lib";

// where to find reset.css
paths.resetCss = paths.bower_components + "/html5-reset/assets/css";

module.exports = function (grunt) {
    "use strict";

    // Project configuration
    grunt.initConfig({
        pkg: grunt.file.readJSON("package.json"),

        clean: [paths.cssOutput, paths.bower_components],

        // copy other css files
        copy: {
            options: {
                '-W069': false,
                'reporterOutput': "",
                'esnext': true
            },
            dist: {
                expand: true, // required when using cwd
                cwd: paths.resetCss, // set working folder / root to copy
                src: ['reset.css'], // copy all files and subfolders
                dest: paths.cssOutput //'./wwwroot/css/' // destination folder
            },
            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']
            }
        }
    });


    // Load the plugin
    grunt.loadNpmTasks('grunt-sass');
    grunt.loadNpmTasks('grunt-contrib-clean');
    grunt.loadNpmTasks('grunt-contrib-copy');

    grunt.registerTask('downloadPkgs', ['pkg']);
    grunt.registerTask('cleanAll', ['clean']);
    grunt.registerTask('copyAll', ['copy']);

};

在单独运行"copy:autoCompleteJS“或"copy:autoCompleteCSS”任务时,我将收到以下警告

运行任务的

:复制:autoCompleteCSS

运行"copy:autoCompleteCSS“(复制)任务

验证属性copy.autoCompleteCSS是否存在于config...OK中

警告:"path“参数必须是字符串类型。接收到的类型对象使用--强制继续。

由于警告而中止。

进程以代码3.终止。

注意:如果我运行“复制:dist”任务,它就会正常工作。我怀疑在另外两个目录名中提供给cwd的路径具有特殊字符"@“是造成问题的原因。

感谢你的帮助。

管理系统建议。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-12-30 19:40:27

dest任务中的autoCompleteJSautoCompleteCSS目标的autoCompleteCSS值应该是字符串,而不是数组。

代码语言:javascript
运行
复制
//...
autoCompleteJS: {
    expand: true,
    cwd: "wwwroot/lib/@tarekraafat/autocomplete.js/dist/js",
    src: ['autoComplete.min.js'],
    dest: 'wwwroot/js'             // <----- Change to this
},
autoCompleteCSS: {
    expand: true,
    cwd: "wwwroot/lib/@tarekraafat/autocomplete.js/dist/css",
    src: ['autoComplete.css'],
    dest: 'wwwroot/css'            // <----- Change to this
}
//...

另外,虽然避免错误并不是完全必要的,但是考虑将两个目标的src值更改为String,而不是数组。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59532540

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档