Предупреждение Gruntfile.js: Аргумент пути должен быть строкового типа. Полученный объект типа Используйте --force для продолжения

У меня возникла проблема с запуском задачи копирования ворчания. У меня есть библиотека, указанная в package.json в соответствии с зависимостями, как показано ниже.

"@tarekraafat/autocomplete.js": "^7.2.0"

и объявил задачи копирования в Gruntfile.js, как показано ниже.

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» по отдельности я получаю следующее предупреждение.

Выполнение задач: copy:autoCompleteCSS
Выполнение задачи "copy:autoCompleteCSS" (копирование)
Проверка существования свойства copy.autoCompleteCSS в config...OK
Предупреждение. Аргумент "path" должен иметь значение строка типа. Получен объект типа. Для продолжения используйте --force.
Прервано из-за предупреждений.
Процесс завершен с кодом 3.

Примечание. Если я запускаю задачу «copy:dist», она работает нормально. Я подозреваю, что путь, указанный для cwd в двух других, имеет специальный символ «@» в имени каталога, вызывающий проблему.

Оценил вашу помощь.

МСРС.


person MSRS    schedule 30.12.2019    source источник


Ответы (1)


Значение dest для целей autoCompleteJS и autoCompleteCSS в задаче copy должно быть строкой, а не массивом.

//...
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 для обеих целей на строки вместо массива.

person RobC    schedule 30.12.2019