即使输出css为空,也要写入文件

时间:2014-05-29 18:59:15

标签: css gruntjs minify

我想写一个空文件,即使目标文件是空的。

有可能吗?

我得到的错误是"目的地未写,因为缩小的css是空的"。

我正在使用grunt-contrib-cssmin模块。

1 个答案:

答案 0 :(得分:1)

仅使用grunt-contrib-cssmin,您不能。

在想知道某个开源软件特有的东西时开始的好地方:源代码本身 - 任务只有~70行。从the source我们可以看到您收到的“错误”:

if (min.length === 0) {
    return grunt.log.warn('Destination not written because minified CSS was empty.');
}

您可能希望查看“触摸”该文件。如果您熟悉* nix,您将知道如果文件不存在,触摸将创建文件,如果文件不存在,将截断文件。在Grunt(node.js)中,您可能希望查看node-touchgrunt-exec

至于您的Gruntfile,您只需要一个以下两项任务:

module.exports = function (grunt) {
    var touch = require('touch');
    grunt.initConfig({
        'cssmin': {
            'combine': {
                'files': { 'path/to/output.css': ['path/to/input_one.css', 'path/to/input_two.css'] }
            }
        },
        'exec': {
            'touch': { 'command': 'touch path/to/output.css' }
        }
    });
    grunt.loadNpmTasks('grunt-contrib-cssmin');
    grunt.loadNpmTasks('grunt-exec');
    grunt.registerTask('touch', touch.sync.bind(undefined, 'path/to/output.css'));
    grunt.registerTask('minifycss1', ['cssmin', 'exec:touch']); // 1
    grunt.registerTask('minifycss2', ['cssmin', 'touch']);      // 2
};
  1. 使用grunt-exec
  2. 使用node-touch