Grunt Contrib Less - Sourcemaps - sourceMapRootpath和sourceMapBasepath被忽略

时间:2014-12-04 20:48:06

标签: gruntjs less source-maps grunt-contrib-less

好的 - 我正在尝试配置较少以吐出源图并正确指向较少文件的可访问路径。我可以让源映射正常工作,但它转储到源映射文件中的sources数组的路径始终不正确。我对sourceMapBasepath或sourceMapRootpath属性所做的任何操作都不会更改sources数组。

这是

中的选项配置
options: {
    paths: ['/app/content/less'],
    yuicompress: true,
    sourceMap: true,
    sourceMapFilename: "WebUI/app/content/css/app.css.map",
    sourceMapURL: "/app/content/css/app.css.map",
    sourceMapBasepath: '/app/content/less',
    sourceMapRootpath: '/'
},
files: {
    "./WebUI/app/content/css/app.css": "./WebUI/app/content/less/app.less"
}

它总是吐出一个源数组,列出具有此文件夹结构的文件:

/WebUI/app/content/less/filename.less

WebUI文件夹是webroot - 我不希望那样。我已经尝试了上面显示的一百万种变体,我添加到sourceMapBasepath或sourceMapRootpath没有任何区别。

有什么想法吗?感谢

2 个答案:

答案 0 :(得分:1)

我遇到了同样的问题并得出结论 sourceMapRootpath正常工作 sourceMapBasepath被忽略

根据soruceMapRootpath description

  

将此路径添加到源地图中较少的文件路径上。

在您的示例中设置

sourceMapRootpath: "/"
    + 
"./WebUI/app/content/less/app.less" (taken from files object) 
    = 
"/./WebUI/app/content/less/app.less"

也许有一些优化可以使" /./"转换为" /"。

虽然你有" filename.less"但很奇怪相反" app.less"。

解决方案

所以为了解决你的问题,我建议你设置:

sourceMapRootpath: '../../../../'

这应该导致

../../../.././WebUI/app/content/less/app.less
在./WebUI/app/content/css/app.css.map文件中。

答案 1 :(得分:0)

我的临时修复是在源地图中输出源文件 - 这已经足够了,但仍然很好奇为什么我无法获得更少文件的路径。