2016-04-25 3 views
4

создание нового проекта, который будет иметь несколько задач grunt, которые я хочу загрузить из файлов задач.grunt требуется свойство конфигурации отсутствует

при запуске моей первой задачи, «ядро», которое должно построить ядро ​​css для сайта, я получаю сообщение об ошибке, которое я не могу решить. делали некоторые поисковые запросы и не обнаружили эту конкретную проблему. любые проблемы с тем же сообщением об ошибке обычно были результатом опечатки или неуместных фигурных скобок со стороны OP. Не уверен, что это так, но, возможно, кто-то еще видит то, что я, очевидно, не вижу.

Gruntfile.js

module.exports = function(grunt) { 

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

    grunt.loadTasks('grunt-tasks'); 

}; 

Грунт-задач/хрюкать-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 

package.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 <[email protected]>", 
    "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" 
    } 
} 
+0

, если добавить еще один вариант конфигурации для CONCAT, я получаю ту же ошибку. Когда я добавляю конфигурацию в Gruntfile.js, все работает нормально. Проблема связана с работой loadTasks. Мне бы очень хотелось загружать задачи из отдельных конфигураций, потому что проект будет довольно большим. – keith73

ответ

2

Похоже, это была ошибка пользователя с моей стороны.

в файле задания, я имел 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']); 
}; 
+0

Дополнительная информация, как только я добавляю вторую задачу в grunt-tasks, initConfig() перезаписывает предыдущую. Я смотрю на другие параметры, такие как require («load-grunt-tasks») – keith73

Смежные вопросы