【问题标题】:Can I use Sass with a batch script in Windows我可以在 Windows 中将 Sass 与批处理脚本一起使用吗
【发布时间】:2012-06-30 20:40:37
【问题描述】:

在我本地机器上的 web 项目中,我使用了一个相当简单的 Sass 设置。 在同一个文件夹中,我有 /scss/style.scss 和 /css/style.css

所以为了在我工作的时候运行 Sass,我只需在 Ruby 终端中编写:

cd "C:\Users\Puppybeard\Documents\Aptana Studio 3 Workspace\Project Title"
sass --watch scss/style.scss:css/style.css

工作正常,但有点麻烦,所以我试图弄清楚如何用批处理脚本来做同样的事情。 我尝试了以下方法,但这完全是一场灾难,我的计算机试图打开无限数量的 Ruby 控制台。

cd "C:\Ruby193\bin"
start ruby
cd "C:\Users\Puppybeard\Documents\Aptana Studio 3 Workspace\Project Title"
sass --watch scss/style.scss:css/style.css
exit

我认为我需要做的是启动 Ruby 在后台运行,而不是打开 Ruby exe。有谁知道Ruby是如何工作的,或者这就是Ruby的工作方式?显然,我是 Sass、Ruby 和批处理脚本的新手,所以您能给我的任何见解都会对我有很大帮助,谢谢。


编辑:我让它像这样工作

cd "\Ruby193\bin"
sass --watch "C:\Users\Puppybeard\Documents\Aptana Studio 3 Workspace\Project Title\scss\style.scss:C:\Users\Puppybeard\Documents\Aptana Studio 3 Workspace\Project Title\css\style.css"

我认为它应该更整洁,并且怀疑 sass 需要设置它的 $PATH。


编辑 2:我使用以下说明为 Ruby 设置 Path 变量:http://groups.google.com/group/beginning-rails/browse_thread/thread/1c68665013a60081

就我而言,我需要添加的路径是 C:\Ruby193\bin 现在,当我在 web 项目的根目录中有脚本时,我需要的唯一行是:

sass --watch scss/style.scss:css/style.css

如果我想拥有可以在我的计算机上的任何位置运行的东西,我可以保留我将目录更改为文件夹位置的部分。但是,脚本未指定项目位置这一事实意味着我可以将其复制到使用相同结构的任何项目中。

值得努力吗?从长远来看,可能是的。

【问题讨论】:

  • 您可以使用 Ruby CMD Prompt 并运行 sass --watch
  • 我知道,这不是我要问的。

标签: ruby windows batch-file sass


【解决方案1】:

将您原来的两个命令放入您的批处理文件中。所以 .bat 文件的内容是:

cd "C:\Users\Puppybeard\Documents\Aptana Studio 3 Workspace\Project Title"
sass --watch scss/style.scss:css/style.css

就这么简单。像这样的批处理文件一个接一个地运行每一行上的每个命令,就像您单独键入每个命令一样。

【讨论】:

  • 嗯,如果我正确设置 Sass,我认为这将是正确的答案。现在考虑为它设置 $PATH。
  • 路径中不需要 Sass,只需要 Ruby。 Sass 是一个 Rubygem,因此如果 Ruby 和 gems 设置正确,从文件系统上的任何位置运行 sass 命令都可以工作。要检查,请查看 \Ruby193\bin 中的 sass.bat 文件。然后检查以确保 \Ruby193\bin 在您的路径中。安装 sass 时,运行它的可执行文件会自动安装在 Ruby 的 bin 文件夹中,如下所示。
  • 是的,这就是路径。它现在只需要一个命令!干杯。
  • 请注意,如果sass 是一个批处理文件,如果您想在此之后运行更多行,则必须使用call sass
  • 我无法让它工作。我发现解决方案是将sass --watch styles.scss:styles.css 替换为ruby C:/Ruby22-x64/bin/sass --watch styles.scss:../../css/styles.css。因此,只需在标准 sass 命令前加上 sass 安装的路径目录即可。
【解决方案2】:

如果您尝试使用批处理文件更新多个 css 文件,如下所示:

scss A.scss ../CSS/A.css
scss B.scss ../CSS/B.css
echo Done.

...但是只执行第一个 scss 命令行,并且批处理文件永远不会完成,即您永远不会看到“完成。”,这是修复它的原因和方法:

scss 实际上是一个错误的批处理文件,它无法将控制权返回给您的批处理文件。我通过绕过 scss 批处理文件并运行 ruby​​ 来解决这个问题,它是 scss gem,如下所示:

ruby C:/Ruby193/bin/scss A.scss ../CSS/A.css
ruby C:/Ruby193/bin/scss B.scss ../CSS/B.css
echo Done.

你需要让你的路径指向 ruby​​,或者在上面放置一个绝对路径。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-20
    • 1970-01-01
    • 2022-10-14
    • 1970-01-01
    • 1970-01-01
    • 2012-07-21
    • 1970-01-01
    相关资源
    最近更新 更多