我试图配置我的Gruntfile自动生成源地图为我的CSS文件。我有几个未压缩的CSS文件,我将它们组合成一个压缩文件,但是我想通过源映射在dist/src/_assets/css/
中引用这些未压缩的文件进行调试。我使用grunt-contrib-cssmin版本0.14.0和grunt 0.4.5。
我的目标项目结构大致如下:
- dist
- _assets
- css
- src
- _assets
- css
- _assets
- _assets
- src
- _assets
- css
- _assets
我的grunt-contrib-cssmin配置是:
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.css, font-awesome.css和portfolio.css复制到dist/src/_assets/css
,但由于某种原因,源映射试图引用dist/_assets/css/src/_assets/css/
而不是dist/src/_assets/css
。有什么方法可以修改源地图正在查看的目录而无需手动修改源地图吗?这对我来说很困惑,因为基本上grunt-contrib-uglify中的相同设置完全符合我对源地图的要求(即它们引用dist/src/_assets/js
)。
嗯,我放弃了在grunt-contrib-cssmin
中直接配置源地图路径的尝试,只是使用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/'
}
]
}
},
grunt-contrib-cssmin目前还没有提供任何类似feature的源映射路径选项。我建议只在生产中使用cssmin,不要在开发中使用。
Kyo Nagashima的"csswring"可能是你问题的解决方案…