0

我正在尝试在 salsjs 应用程序中添加自定义任务。

这是我到目前为止所做的:

  • 在 task/config 目录中添加了一个名为 cssminTemplates.js 的新文件
  • 修改task/registerd目录下的default.js文件。

我的 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. 

我尝试用 'cssmin' 更改 'cssminTemplates' 并且没有错误。

4

1 回答 1

0

Grunt.js( ref ) 中,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不起作用的原因。

于 2016-07-10T01:45:05.540 回答