【问题标题】:lessc Option --source-map-rootpath seems not to worklessc 选项 --source-map-rootpath 似乎不起作用
【发布时间】:2019-10-30 09:11:39
【问题描述】:

我使用lessc 2.7.3。我通过 makefile 生成 css 文件并使用以下路径

  • makefile 在themes/bodensee
  • css 在themes/bodensee/css 中生成
  • themes/bodensee/less 中的文件较少
  • 地图与 css 文件位于同一文件夹中。

我的问题是 css 文件错过了 themes/bodensee 路径,所以它会引发一个在 css.map 文件中找不到的文件。

lessc -s less/wlb.less --clean-css="--s0 --advanced" --source-map-rootpath=themes/bodensee/ --source-map="css/wlb.css.map" css/wlb.css

CSS 文件现在包含 `sourceMappingURL=css/wlb.css.map``根路径没有任何作用。

我还尝试了一个幻想根路径并在文件中搜索它 - 它没有出现在任何地方。但选项是正确的。当我尝试拼错选项时,LESS 会抛出一个错误。

我错过了什么?

here 中的 --source-map-rootpath 选项的说明

指定一个根路径,该根路径应添加到源映射中的每个较少文件路径以及输出 css 中指定的映射文件的路径。

因为basepath默认是输入less文件的目录,所以rootpath默认是sourcemap输出文件到输入less文件的基目录的路径。

例如,如果您在 Web 服务器的根目录中生成了一个 css 文件,但将源文件 less/css/map 文件放在不同的文件夹中,请使用此选项。所以对于上面的选项,你可能有

【问题讨论】:

  • 没有--clean-css 选项是否相同? (这是我怀疑的第一件事,因为它有自己独立的源映射引擎)。
  • 是的,你是对的!我还发现 themes/bodensee 不需要作为根路径。相反,它需要删除 css 目录。这两个文件都在同一个目录中,并且 css 指向 css.map 仅具有文件名。

标签: less source-maps


【解决方案1】:

问题确实与 Clean-CSS 插件有关。

我现在打电话 lessc --source-map --clean-css="--s0 --advanced" -s less/wlb.less css/wlb.css 正在工作。

有一个standalone clean-css 程序,但它不会为 Less 文件生成源代码。不清楚 lessc 插件和独立工具是相同还是不同的实现,但都使用node

独立的cleancss 工具默认删除lessc 生成的源地图URL(没有使用几十个选项)。

这些 Node 工具的开发速度非常快,而且手册/教程通常已经过时。这就是我的make文件停止工作的原因。该工具的开发人员应该真正考虑不要触及工作参数或功能,并保持他们的代码兼容。

【讨论】:

  • 但这不会为 LESS 文件生成源代码。 请注意,在理想情况下,如果 css 文件已经有源映射(例如,由 Less 生成) - 下一个链中的 CSS 处理器(例如,在这种情况下为 clean-css)应考虑现有映射,并在可能的情况下参考/映射到原始源。但是在一个完美的世界中(仍然..如果在这方面有任何注释,请注意相应的工具文档。例如,您可以尝试一些其他 CSS 缩小器 - 我听说有些对已经更温和/公平呈现源图)。
  • 我很高兴它再次工作,不能在这方面投入更多时间。
猜你喜欢
  • 2018-08-29
  • 1970-01-01
  • 1970-01-01
  • 2021-09-25
  • 1970-01-01
  • 2011-10-11
  • 2020-01-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多