javascript - 缺少 grunt 必需的配置属性

标签 javascript node.js sass gruntjs

设置一个新项目,该项目将包含多个我想从任务文件加载的 grunt 任务。

在运行我的第一个任务“核心”(应该为网站构建核心 CSS)时,我遇到了一个我似乎无法解决的错误。一直在谷歌搜索,但没有找到这个具体问题。相同错误消息的任何问题通常是由于 OP 的拼写错误或花括号放错地方造成的。不确定这里的情况,但也许其他人看到了我显然没有看到的东西。

Gruntfile.js

module.exports = function(grunt) {

    grunt.initConfig({
        pkg: require('./package.json')
    });

    grunt.loadTasks('grunt-tasks');

};

grunt-tasks/grunt-core.js

module.exports = function (grunt) {
    grunt.loadNpmTasks('grunt-sass');
    grunt.config('core', {
        sass : {
            options : {
                sourceMap : true,
                includePaths : 'node_modules/bootstrap-sass/assets/stylesheets'
            },
            dist : {
                files : {
                    'main.css' : 'main.scss'
                }
            }
        }
    });
    grunt.registerTask('core', ['sass:dist']);
};

错误:

$ grunt core
Running "sass:dist" (sass) task
Verifying property sass.dist exists in config...ERROR
>> Unable to process task.
Warning: Required config property "sass.dist" missing. Use --force to continue.

Aborted due to warnings.

我尝试了一些不同的东西。如果我将 registerTask 更改为:

grunt.registerTask('core', ['sass']);

我收到这个错误:

$ grunt core
>> No "sass" targets found.
Warning: Task "sass" failed. Use --force to continue.

Aborted due to warnings.

不确定这是否相关,但这是 package.json 和我正在使用的系统的一些规范。

Mac OSX Yosemite
node version v5.10.1
npm 3.8.3

包.json

{
  "name": "TEST",
  "version": "1.0.0",
  "description": "test test test",
  "main": "Gruntfile.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "repository": {
    "type": "git",
    "url": "https://github.com/path/to/repo"
  },
  "author": "me <me@example.com>",
  "license": "ISC",
  "bugs": {
    "url": "https://github.com/path/to/repo/issues"
  },
  "homepage": "https://github.com/path/to/repo",
  "devDependencies": {
    "angular": "^1.5.5",
    "bootstrap-sass": "^3.3.6",
    "grunt": "^1.0.1",
    "grunt-contrib-jshint": "^1.0.0",
    "grunt-contrib-uglify": "^1.0.1",
    "grunt-contrib-watch": "^1.0.0",
    "grunt-sass": "^1.1.0",
    "jquery": "^2.2.3",
    "sass-lint": "^1.5.1"
  },
  "dependencies": {
    "jquery": "^2.2.3"
  }
}

最佳答案

看起来这是我的用户错误。

在任务文件中,我有 grunt.config(),但我应该有 grunt.initConfig()

var taskConfig = {
    sass : {
        options : {
            sourceMap : true,
            includePaths : 'node_modules/bootstrap-sass/assets/stylesheets'
        },
        dist : {
            files : {
                'main.css' : 'main.scss'
            }
        }
    },
    concat : {
        core : {
            src : ['node_modules/jquery/dist/jquery.js', 'js/main.js'],
            dest : "../dev/js/main.js"
        }
    }
};

module.exports = function (grunt) {
    grunt.loadNpmTasks('grunt-contrib-concat');
    grunt.loadNpmTasks('grunt-sass');
    grunt.initConfig(taskConfig);
    grunt.registerTask('core', ['concat:core','sass']);
};

关于javascript - 缺少 grunt 必需的配置属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36848107/

相关文章:

javascript - Node.js 未处理 'error' 事件

javascript - 如何找到 JavaScript 对象之间的公共(public)属性

css - 隐藏导航栏中的空格

github - CSS 属性在 github 中以红色突出显示

css - 样式嵌套 div 没有指定类名

javascript - 如何使用 setTimeout 来限制获取请求的时间?

javascript - 在 URL 中构造查询参数时,删除 qs.stringify 中具有空值或 null 值的键

javascript - window.find 跨 block 元素工作?

javascript - 在 Angularjs 中访问组件/ Controller 之间的对象

javascript - 使用子选择序列化 JS 自定义查询