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 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 のパス変数を設定します: http://groups.google.com/group/beginning-rails/browse_thread/thread/1c68665013a60081

私の場合、追加する必要があったパスは C:\Ruby193\bin でした。Web プロジェクトのルートにスクリプトがある場合、必要な行は次の 1 つだけです。

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

コンピューターのどこからでも実行できる何かが必要な場合は、ディレクトリをフォルダーの場所に変更する部分を保持できます。ただし、スクリプトがプロジェクトの場所を指定していないという事実は、同じ構造を使用する任意のプロジェクトにスクリプトをコピーするだけでよいことを意味します。

努力する価値はありますか?長期的には、おそらく、ええ。

4

2 に答える 2

4

元の2つのコマンドをバッチファイルに入れます。したがって、.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 に答える