css - 使用 cssmin 为缩小的 css 保留较少的 sourceMap

标签 css gruntjs less source-maps grunt-contrib-cssmin

我的 LESS 文件是使用 grunt-contrib-less 和相应的 grunt 任务编译的,配置如下:

module.exports = {

    options: {
        sourceMap: true,
        sourceMapFilename: 'Content/styles/e-life.css.map'
    },
    compile: {
        files: {
            'Content/styles/e-life.css' : 'Content/styles/common.less'
        }
    }

}

然后我使用 cssmin 来输出 css 文件。我将其缩小,但我想将上一步中的源映射绑定(bind)到缩小的 css。

module.exports = {

    options: {
        sourceMap: 'Content/styles/e-life.css.map'
    },
    all: {
        files: {
            'Content/styles/e-life.css': ['Content/styles/e-life.css']
        }
    }

}

如果我在 options.sourceMap 中提及源映射路径,任务就会失败。我在 css-clean docs 中看到以下内容:

sourceMap - exposes source map under sourceMap property, e.g. new CleanCSS().minify(source).sourceMap (default is false) If input styles are a product of CSS preprocessor (Less, Sass) an input source map can be passed as a string.

但我不明白如何将此字符串传递给任务。有可能吗?我怎样才能做到这一点?

最佳答案

grunt-contrib-cssmin 不允许您链接源映射。 它的 sourceMap 选项只有 true/false,并且会生成从缩小的 css 到原始 css 的映射,而不是到原始 Less 的映射,抱歉。

考虑到源映射主要用于调试,我建议:

  • 不要在您的开发环境中使用 cssmin,这样您就可以根据需要从 css 映射到 Less 文件。
  • 使用 cssmin 无需映射进行生产。

关于css - 使用 cssmin 为缩小的 css 保留较少的 sourceMap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30871531/

相关文章:

gruntjs - Windows 上的 HAML 到 HTML 转换器

meteor - 如何使用@import 在meteor 中使用更少的mixin 而不会获得多个定义

css - 减少第 n 个 child 的混入?

html - 仅 CSS 检测 HTML 中的文本溢出?

html - 如何在 A4 纸张大小的页面中制作 HTML 页面?

css - 自动放大div,自动适应图片背景

html - 如何防止移动设备字体缩放

javascript - 使用 grunt-contrib-uglify 丑化 javascript 代码

node.js - 观察、重新编译和重启

css - Less Mixin 在属性选择器中使用变量