SailsJs добавляет пользовательское задание в default.js

Я пытаюсь добавить пользовательскую задачу в приложении salsjs.

Это то, что я сделал до сих пор:

  • Добавлен новый файл в каталог task/config с именем cssminTemplates.js
  • Измените файл default.js в каталоге task/registerd.

Мой cssminTemplates.js в основном является копией стандартного файла cssmin.js:

module.exports = function(grunt) {

 grunt.config.set('cssminTemplates', {
    dist: {
        src: ['asset/templates/above_the_fold.css'],
        dest: 'asset/templates/above_the_fold.min.css'
    }
 });
grunt.loadNpmTasks('grunt-contrib-cssmin');
};

Файл default.js изменен следующим образом:

module.exports = function (grunt) {
 grunt.registerTask('default', [
  'compileAssets',
  'linkAssets',
  'cssminTemplates',
  'watch']);
};

Но когда я запускаю приложение командой sails lift, я получаю эту ошибку:

Warning: Task "cssminTemplates" not found. 

Я пытаюсь изменить 'cssminTemplates' на 'cssmin', и у меня нет ошибок.

1 ответ

В Grunt.js ( ссылка), cssminTemplates функция вызывается вместо cssmin который загружается через grunt.loadNpmTasks('grunt-contrib-cssmin');, Это где функция вызывается:

function invokeConfigFn(tasks) {
    for (var taskName in tasks) {
        if (tasks.hasOwnProperty(taskName)) {
            // Invoking the function....
            tasks[taskName](grunt);
        }
    }
}

Другими словами, вы устанавливаете функцию (cssminTemplates) и вызывая его из Grunt.js но Grunt загружен cssmin вместо этого через loadNpmTasks(), Я думаю, именно поэтому настройка cssminTemplates не работает.

Другие вопросы по тегам