Grunt 中的“验证属性 ___ 存在于配置中”是啥意思?

Posted

技术标签:

【中文标题】Grunt 中的“验证属性 ___ 存在于配置中”是啥意思?【英文标题】:What does "Verifying property ___ exists in config" mean in Grunt?Grunt 中的“验证属性 ___ 存在于配置中”是什么意思? 【发布时间】:2014-12-15 15:22:36 【问题描述】:

我有一个用 Coffeescript 编写的简单 Gruntfile:

"use strict"

module.exports = (grunt) ->

    config =
        src: "app"
        dist: "build"

    grunt.initConfig =
        config: config
        copy:
            dist:
                files: [
                    expand: true
                    cwd: "<%= config.app %>"
                    dest: "<%= config.dist %>"
                    src: [
                        "*.ico,png"
                        "*/*.html"
                    ]
                ]

    grunt.loadNpmTasks "grunt-contrib-copy"

    grunt.registerTask "build", [
        "copy:dist"
    ]

    grunt.registerTask "default", [
        "build"
    ]

运行时会抛出以下错误:

Verifying property copy.dist exists in config...ERROR
>> Unable to process task.
Warning: Required config property "copy.dist" missing. Use --force to continue.

这也指的是什么?好像 copy.dist 存在,为什么没有被读取?

另外,我认为这是一个 Coffeescript 格式问题,因为用 javascript 编写的等效 Gruntfile 不会引发此问题:

"use strict";

module.exports = function (grunt) 

    // Configurable paths
    var config = 
        scr: "app",
        dist: "build"
    

    grunt.initConfig(

        // Project settings
        config: config,

        copy: 
            dist: 
                files: [
                    expand: true,
                    cwd: "<%= config.app %>",
                    dest: "<%= config.dist %>",
                    src: [
                        "*.ico,png",
                        "*/*.html"
                    ]
                ]
            
        
    );

    // Install plugins
    grunt.loadNpmTasks("grunt-contrib-copy");

    grunt.registerTask("build", [
        "copy:dist"
    ]);

    grunt.registerTask("default", [
        "build"
    ]);

;

【问题讨论】:

【参考方案1】:

我在你的配置块中看不到config.app,我只能看到包含字符串("app")的config.src。

所以我会尝试将cwd: "&lt;%= config.app %&gt;" 换成cwd: "&lt;%= config.src %&gt;"

希望这会有所帮助。

【讨论】:

谢谢,好收获!不幸的是,同样的错误仍然存​​在。

以上是关于Grunt 中的“验证属性 ___ 存在于配置中”是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章

使用 Grunt 压缩 HTML 中的类名和 id

Grunt-学习。

Grunt

Node JS - Grunt 任务中的 child_process spawn('npm install') 导致 ENOENT 错误

由于 yeoman mean 中的警告,grunt 服务中止

Grunt使用-V1.0