2

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

这是选项配置中的

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 的任何内容都没有产生任何影响。

有任何想法吗?谢谢

4

2 回答 2

1

我遇到了同样的问题,并得出了sourceMapRootpath 有效sourceMapBasepath 被忽略的结论。

根据soruceMapRootpath 描述

将此路径添加到源映射中的较少文件路径。

在您的示例中,您设置

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 文件中。

于 2015-03-17T18:29:18.443 回答
0

我的临时解决方法是在源映射中输出源文件 - 这已经足够了,但仍然好奇为什么我不能让更少文件的路径正确。

于 2014-12-04T20:56:57.423 回答