windows - 为什么 sass 不会被 Windows 上的驱动器名称混淆

标签 windows sass

我不确定是否应该在这里提问,但我想不出更好的社区,所以我会在这里提问。

我正在使用 SASS 在 Windows 上编写我的 CSS,这些文件位于我的 C:\xampp\htdocs 文件夹中。我正在使用 SASS 命令行指令:

sass --watch /path/to/scss/file:/path/to/css/file

但是,Windows 上的驱动器名称中有冒号,因此语法如下:

sass --watch C:\xampp\htdocs\mysass.scss:C:\xampp\htdocs\mycss.css

为什么 SASS 不会被驱动器名称中的冒号混淆?

最佳答案

编辑

在您可能正在使用的 Ruby Sass 实现中,开发人员是这样构建它的:

def split_colon_path(path)
  one, two = path.split(':', 2)
  if one && two && Sass::Util.windows? &&
      one =~ /\A[A-Za-z]\Z/ && two =~ %r{\A[/\\]}
    # If we're on Windows and we were passed a drive letter path,
    # don't split on that colon.
    one2, two = two.split(':', 2)
    one = one + ':' + one2
  end
  return one, two
end

full source

如您所见,系统会检查操作系统。如果当前操作系统是 Windows,他们会将参数拆分到第二个冒号而不是第一个冒号。

旧:

根据您用于运行 Sass 的包装器,有一些库可以与操作系统无关地解析文件路径。

例如,如果您运行 node-sass(Node.js 包装器),sass 将使用 node.js path-utility通过管道将 I/O 传入和传出 Sass。

node.js 中的示例

Windows :

> path.resolve()
'C:\\Users\\tom_m'

GNU\Linux (Ubuntu)

> path.resolve()
'/home/tom_m'

这意味着,文件路径的解析方式并不特定于 sass,而是特定于您正在使用的包装器。

要了解您的 libSass-wrapper 如何处理路径,请在 http://sass-lang.com/libsass 上查找它。并在github上搜索对应的项目。

您可以在此处找到 node-sass 包装器:https://github.com/sass/node-sass

关于windows - 为什么 sass 不会被 Windows 上的驱动器名称混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42586635/

相关文章:

windows - 跳过批处理脚本中的多行

linux - 使用putty连接windows和linux机器

node.js - SCSS无法编译?

css - Sublime text sass 构建系统 : compressed with comments

css - 如何覆盖scss变量?

css - 如何根据显示器分辨率让屏幕响应

c++ - window平台下c获取进程状态

windows - 如何在 Windows 上编译 lex 文件?

windows - 有没有办法在 Windows 10 上触发来自 Vala MSYS2 的弹出通知?

sass - 如何将 compass/实用程序添加到加载路径( compass +sass+netbeans)