【问题标题】:Grunt Contrib Less - Sourcemaps -- sourceMapRootpath and sourceMapBasepath ignoredGrunt Contrib Less - Sourcemaps - sourceMapRootpath 和 sourceMapBasepath 被忽略
【发布时间】:2015-02-02 21:45:12
【问题描述】:

好的 - 我正在尝试配置 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 的任何内容都没有改变。

有什么想法吗?谢谢

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      我遇到了同样的问题,并得出结论 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 文件中。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-01-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-03-11
        • 2014-04-30
        相关资源
        最近更新 更多