我正在尝试在salsjs应用程序中添加一个自定义任务。
这是我到目前为止所做的:
- 在任务/配置目录中添加了一个名为 cssminTemplates 的新文件.js
- 修改任务/注册目录中的默认.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');
};
默认.js文件修改如下:
module.exports = function (grunt) {
grunt.registerTask('default', [
'compileAssets',
'linkAssets',
'cssminTemplates',
'watch']);
};
但是当我使用 sails lift 命令启动应用程序时,我收到此错误:
Warning: Task "cssminTemplates" not found.
我尝试用"cssmin"更改"cssminTemplates",但没有错误。
在 Grunt.js
(ref) 中,cssminTemplates
函数被调用,而不是通过grunt.loadNpmTasks('grunt-contrib-cssmin');
加载的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
不起作用的原因。