Less.js: Source Maps 没有右括号的映射

创建于 2020-03-01  ·  4评论  ·  资料来源: less/less.js

当我使用版本 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,它们都没有将生成的文件中的右括号映射回原始文件。 这通常只是预处理器的限制吗?

stale

最有用的评论

只想说Less很棒

所有4条评论

简单的答案是,Less(目前)有一个非常简单的解析器,它只跟踪源开始而不是源结束,主要是因为它是在源映射成为概念之前创建的。

我一直在使用Chevrotain从头开始重写一个 Less 解析器以用于 4.x,并且已经做了大量的工作,但是没有经济支持(a la Open Collective ),我真的只能在它上面工作在有限的空闲时间。 我仍然打算这样做,但可能需要一段时间。

这很有意义,感谢您的快速回复。 我将在周五为公开集体做出贡献。 我对新的解析器感到兴奋,因为我知道它会在未来出现。 我注册为月度贡献者,并在 Meteor Slack 频道和 LinkedIn 上发布公告。 我将继续努力争取对 LESS 的支持,并继续前进。 它是我最喜欢的项目之一

只想说Less很棒

此问题已自动标记为过时,因为它最近没有活动。 如果没有进一步的活动发生,它将被关闭。 感谢你的贡献。

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