我如何控制 grunt-contrib-cssmin sourcemap URLs?

How can I control grunt-contrib-cssmin sourcemap URLs?

我正在尝试配置我的 Gruntfile 以自动为我的 CSS 文件生成源映射。我有几个未缩小的 CSS 文件,我将它们组合成一个缩小的文件,但我想通过源映射在 dist/src/_assets/css/ 中引用未缩小的文件进行调试。我正在使用 grunt-contrib-cssmin 版本 0.14.0 和 grunt 0.4.5.

我的目标项目结构大致是:

我的 grunt-contrib-css最小配置是:

        cssmin: {
            options: {
                keepSpecialComments: false,
                sourceMap: true
            },
            build: {
                files: {
                    'dist/_assets/css/portfolio.css': [
                        'src/_assets/css/bootstrap.css',
                        'src/_assets/css/font-awesome.css',
                        'src/_assets/css/portfolio.css'
                    ]
                }
            }
        },

我有一个单独的复制任务,复制bootstrap.cssfont-awesome.cssportfolio.cssdist/src/_assets/css,但出于某种原因,sourcemap 试图引用 dist/_assets/css/src/_assets/css/ 而不是 dist/src/_assets/css。有什么方法可以修改源映射正在查看的目录而无需手动修改源映射?这让我很困惑,因为 grunt-contrib-uglify 中基本上相同的设置完全符合我对源地图的要求(即它们引用 dist/src/_assets/js)。

grunt-contrib-cssmin 不提供任何源地图路径选项,如功能,直到现在。我建议仅将 cssmin 用于生产而不用于开发。

Kyo Nagashima 的

"csswring" 可能是您问题的解决方案...

好吧,我放弃了直接在 grunt-contrib-cssmin 中配置 sourcemap 路径的尝试,只是使用 grunt-text-replace 来整理我的路径:

replace: {
    build: {
        src: 'dist/_assets/css/portfolio.css.map',
        dest: 'dist/_assets/css/',
        replacements: [
            {
                from: 'src/_assets/css/',
                to: '../../../src/_assets/css/'
            }
        ]
    }
},