7

在我本地机器上的 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

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

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

4

2 回答 2

4

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

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

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

于 2012-06-29T10:17:14.090 回答
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​​,或者在上面放置绝对路径。

于 2014-01-19T11:27:53.060 回答