【问题标题】:why using grunt-contrib-cssmin is changing my css while it should only minify that为什么使用 grunt-contrib-cssmin 会改变我的 css 而它应该只缩小它
【发布时间】:2015-01-07 13:46:06
【问题描述】:

我正在使用 grunt-contrib-cssmin 来缩小我的 css 文件。我认为这个工具 (grunt-contrib-cssmin) 只是 clean-css 的包装器。一切都很好,除了这个 grunt 插件正在我的 css 中进行更改。我尝试使用可以从 clean-css 存储库中找到的所有选项,但没有任何效果。请帮帮我,这东西要了我的命!!

咕噜文件:

module.exports = function (grunt) {
    'use strict';
    // Project configuration
    grunt.initConfig({
        // Metadata
        pkg: grunt.file.readJSON('package.json'),
        cssmin: {
            options: {
                keepSpecialComments:'1',
                processImport: false,
                roundingPrecision: -1,
                shorthandCompacting: false,
                aggressiveMerging: false,
                advanced: false,
            },
            minified_css_admin: {
                src: ['public/admin/css/style.default.css','public/admin/prettify/prettify.css','public/admin/css/bootstrap-fileupload.min.css','public/admin/css/developer.css'],
                dest: 'public/admin/css/minified-css-admin.min.css',
            },
          },
    });
    // These plugins provide necessary tasks
    grunt.loadNpmTasks('grunt-contrib-cssmin');

    // Default task
    grunt.registerTask('default', ['admin-default']);
    grunt.registerTask('admin-default', ['cssmin:minified_css_admin']);
};

缩小前:

.loginwrapper input#remember_me {
    margin: 0 !important;
    min-height: 10px;
    width: auto;
    box-shadow: 0px 0px;
    background:none;
    padding-left:0px!important;
    padding-right:5px!important;
}

缩小后:

.loginwrapper input#remember_me{margin:0!important;min-height:10px;width:auto;box-shadow:0 0;background:0 0;padding-left:0!important;padding-right:5px!important}

现在可以看到 'background:none' 更改为 'background:0 0' 我如何确保它不会对我的 css 进行任何更改,除了缩小它。

【问题讨论】:

  • 看起来像是 cssmin 使用的 clean-css 库中的一个错误。

标签: javascript css node.js gruntjs grunt-contrib-cssmin


【解决方案1】:

啊,在查看了 Github 中的 clean-css 问题后,我发现 this one 表明 background:none; 已“优化”到 background:0 0;。请注意,它短了 1 个字符。我认为这在“丑化”库中很常见,但它应该与纯粹的“缩小”分开,IMO 应该只删除不重要的信息,如空格。

查看options for clean-css(您可以在您的cssmin 配置中使用)我认为没有办法禁用它,我尝试了shorthandCompactingadvanced 选项但没有运气。不幸的是,看起来你被这个卡住了。但是,background:0 0; 的操作应该与background:none; 相同。

【讨论】:

    【解决方案2】:

    你可以试试restructuring: false选项

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-28
      • 1970-01-01
      • 1970-01-01
      • 2016-01-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多