当我使用版本 3.11.1 为以下文件生成源映射时
.example {
display: grid;
transition: all 0.5s;
user-select: none;
background: linear-gradient(to bottom, white, black);
}
<strong i="6">@color</strong>: "blue";
#my-div {
color: @color;
}
在节点脚本中使用以下命令
less.render(lessFileContents, { sourceMap: { sourceMapFileInline: false } })
.then(function (output) {},
然后我查看 Source Map 并在https://sokra.github.io/source-map-visualization/#custom工具中运行它
{"version":3,"sources":["input"],"names":[],"mappings":"AAAA;EACE,aAAA;EACA,oBAAA;EACA,iBAAA;EACA,YAAY,wCAAZ;;AAKF;EACE,OAHM,MAGN"}
您可以看到这两个映射 wCAAZ;;AAKF 之间的空行,其中 } 的映射应该是。 当您制作源地图时,这会成为问题,其中此生成的地图是您用来返回原始 Less 文件的中间步骤。
作为更新,我尝试了 Stylus 和 node-sass,它们都没有将生成的文件中的右括号映射回原始文件。 这通常只是预处理器的限制吗?
简单的答案是,Less(目前)有一个非常简单的解析器,它只跟踪源开始而不是源结束,主要是因为它是在源映射成为概念之前创建的。
我一直在使用Chevrotain从头开始重写一个 Less 解析器以用于 4.x,并且已经做了大量的工作,但是没有经济支持(a la Open Collective ),我真的只能在它上面工作在有限的空闲时间。 我仍然打算这样做,但可能需要一段时间。
这很有意义,感谢您的快速回复。 我将在周五为公开集体做出贡献。 我对新的解析器感到兴奋,因为我知道它会在未来出现。 我注册为月度贡献者,并在 Meteor Slack 频道和 LinkedIn 上发布公告。 我将继续努力争取对 LESS 的支持,并继续前进。 它是我最喜欢的项目之一
只想说Less很棒
此问题已自动标记为过时,因为它最近没有活动。 如果没有进一步的活动发生,它将被关闭。 感谢你的贡献。
最有用的评论
只想说Less很棒