Less.js: 源映射选择器上的错误行号 - chrome 报告第一个元素的位置,而不是最后一个元素

创建于 2013-08-14  ·  5评论  ·  资料来源: less/less.js

下面的 less 将指向html>body form尽管定义是明确的input
但是,这在使用&运算符时可以正常工作,但是更改所有像这样的 less 定义是很痛苦的

html>body form  {

    input {
        color: cyan !important;
    }

    & input {
        background: yellow !important;
    }
}

line bug

我认为这可能是less支持的其他运算符的范围,但永远不会更少,源映射应该正确支持空或任何运算符,因为它是有效的less代码。

bug medium priority

最有用的评论

注意:#1715 的解决方法是控制并单击属性而不是选择器。
注意 2:chrome 不会修复它,所以它必须以更少的方式解决,可能会找到最后一个元素索引? 在选择器中

所有5条评论

我认为这是因为 less 实际上标记了来自不同地方的选择器的不同部分..所以它告诉 chrome 选择器的第一部分来自第 3 行,第二部分来自第 9 行。当 less 使用&它实际上破坏了实现,而 less 只告诉 chrome 关于第二部分。

然而,鉴于 chrome 中的信息无论如何都非常粗略,我们可能应该只显示选择器最后一部分的信息。

这个错误现在在铬错误中: https : =287382

自我注意:可以通过在输出每个路径之前覆盖文件信息来解决。 还需要考虑在替换中间选择器的地方扩展 - 由于扩展而创建了路径,因此扩展是重要的。

将这个标记为现在低,因为您可以随时向下滚动..它至少会给您一个指针..除非@dotnetwise您有理由说明这会导致大问题。

注意:#1715 的解决方法是控制并单击属性而不是选择器。
注意 2:chrome 不会修复它,所以它必须以更少的方式解决,可能会找到最后一个元素索引? 在选择器中

我已经测试了以下示例代码: http :

#main {
max-width: 500px;
color: white;
.sub-container {
color: blue;
}
}

我发现问题不仅发生在 chrome 中,而且发生在 Firefox 中。 然后我尝试使用 gulp-less 和 gulp-sourcemap 编译代码(我希望 gulp-sourcemap 使用不同的源映射生成器)。 gulp 构建也没有解决问题。
当我用 sass 编译相同的代码时,生成的源映射在 chrome 和 FF 中都正确指向 4。

另一方面,Less 在某些时候有正确的行号(使用 --line-numbers=comments):

/* line 1, /t.less */
#main {
  max-width: 500px;
  color: white;
}
/* line 4, /t.less */
#main .sub-container {
  color: blue;
}

是的,但仅适用于非“嵌套规则”

如果在大规则中嵌套任何内容,则所有源映射行都将指向其顶部。

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

papandreou picture papandreou  ·  7评论

matthew-dean picture matthew-dean  ·  6评论

rejas picture rejas  ·  6评论

Oskariok picture Oskariok  ·  6评论

renoth picture renoth  ·  6评论