ASP.NET環境でRuby HAMLパッケージからSASS(構文的に素晴らしいStyleSheets)を使用する方法を探しています。理想的には、SASSファイルをCSSにコンパイルして、ビルドプロセスのシームレスな部分にしたいと考えています。
この統合に最適な方法は何ですか?または、.NET環境により適した他のCSS生成ツールはありますか?
ASP.NET環境でRuby HAMLパッケージからSASS(構文的に素晴らしいStyleSheets)を使用する方法を探しています。理想的には、SASSファイルをCSSにコンパイルして、ビルドプロセスのシームレスな部分にしたいと考えています。
この統合に最適な方法は何ですか?または、.NET環境により適した他のCSS生成ツールはありますか?
回答:
Visual Studioでより良い作業体験を得るには、Sass(SCSS構文)をサポートし始めているWeb Essentialの最新バージョンをインストールできます。
または、Sassy StudioまたはWeb Workbenchをインストールすることもできます。
次に、あなたのASP.NETプロジェクトであなたの.sass / .scssファイルをコンパイルするために、いくつかの異なるツールがあります:経由のWebエッセンシャル、ウェブワークベンチ、SassC、Sass.Net、コンパス、SassAndCoffee ...
Web Essentialは、Visual Studio用の完全な機能を備えたプラグインであり、すべてのフロントエンドスタッフに優れたエクスペリエンスを提供します。最新バージョンはSass(SCSS構文)をサポートし始めています。内部的には、Libsassを使用してSCSSをCSSにコンパイルします。
Web Workbenchは、Visual Studioのもう1つのプラグインで、構文の強調表示、インテリジェンス、SCSSファイルの編集に役立つその他の機能を追加します。また、コードを通常のCSSまたは縮小CSSにコンパイルすることもできます。内部的には、Ruby Sassコンパイラのラップバージョンを使用していました。
Sassy Studio:Visual Studioのもう1つのプラグイン。機能は少ないですが、はるかに軽量です。
Libsassライブラリは(まだ開発中)サスCSSのプリコンパイラのC ++のポートです。元のバージョンはRubyで記述されていましたが、このバージョンは効率と移植性を目的としています。このライブラリは、軽量でシンプル、かつ簡単に構築でき、さまざまなプラットフォームや言語と統合できるように努めています。
Libsassライブラリにはいくつかのラッパーがあります。
CompassはSass用のフレームワークであり、(画像のスプリッティングなどの)多くの便利なヘルパーを追加し、SCSS / Sassをコンパイルすることもできます。ただし、スタイルをコンパイルする必要がある各開発環境にRubyをインストールする必要があります。
SassAndCoffeeは、いくつかのDLLと構成を介して、SCSS / Sassのコンパイルと圧縮のサポートを追加するパッケージです。Web Workbenchコンパイラーに対するその利点は、Visual Studioソリューションに自己完結していることです。すべての開発環境にプラグインをインストールする必要はありません。備考:SassAndCoffeeは頻繁に更新されません。公式のRubyコンパイラをラップするためにIronRubyを使用するため、パフォーマンスの問題が発生する可能性があります。Nugetパッケージから最新バージョンをインストールできます。
compassプロジェクトには、sassをcssにコンパイルするコンパイラーがあります。Windows上で動作するように構築されていますが、そのプラットフォームでは十分にテストされていません。プラットフォーム関連のバグを見つけた場合は、喜んでそれらを修正します。
コンパスはここにあります:http : //github.com/chriseppsein/compass
2015年の私の現在のアドバイスは、Node.js
(サーバーサイドJavascriptプラットフォーム)とgulp.js
(タスクランナーノードパッケージ)、および(libsassをgulp-sass
実装するgulpのノードパッケージ-Ruby SASSの高速Cポート)を使用することです。
このようなチュートリアルから始めることができます。
バンドリングを好む?Bundle Transformerがlibsassを使用するようになり、高速コンパイルが可能になりました。
NodeとGulpを使うべきだと思う理由はここにあります。
package.json
とをセットアップしたらgulpfile.js
、通常、実行するために必要なのはいくつかのステップだけです。npm install -g gulp
(gulpをグローバルにインストール)npm install
(プロジェクトパッケージをローカルにインストール)gulp taskname
(gulpfile.js
タスク名の設定方法に応じて、SASS、Javascriptなどをコンパイルするタスクを実行します)ワークフローに関しては、いくつかの典型的なオプションがあります。
開発者にコンパイル済みコードをリポジトリーにコミットさせる
欠点:開発者は、本番環境にgulp
対応したアセットをコンパイルするために、常に実行するか、または同様に実行する必要があります
build | stage | productionサーバーはリリース前にgulpタスクを実行します。
この方法はセットアップが複雑になる可能性がありますが、作業は検証され、コンパイルされていないソースから新しくビルドされます。
以下は、2012年の私の古い回答で、後世のために保管されています。
Ruby、Python、C#.NETを使用するプロジェクトをリードするフロントエンド開発者から、私はこれらの考えを持っています:
サスとレス
私は新しいプロジェクト、特にすばらしい[コンパスフレームワーク] [2]で[Sass] [1]を使用することを好みます。コンパスは素晴らしい作品であり、私のプロセスに多くの価値を追加します。Sassにはすばらしいコミュニティ、わかりやすいドキュメント、強力な機能セットがあります。SassはRubyライブラリです。
Sassに代わるものは[LESS] [3]です。構文と機能は似ていますが、コミュニティが小さく、ドキュメントが少し優れています。JSライブラリが少なくなります。
トレンド的には、CSSレベル4の機能をサポートしているとしても、Sassは十分に開発されているため、時間の経過とともにSassに移行する傾向があります。しかし、LESSは依然として完全に使用可能であり、それを使用するに値する十分な価値を簡単に追加できます。
ASP.NETプロジェクトでのSass / LESSの使用について
私はSassを使用することを好みますが、Ruby / Sassを.NETプロジェクトで動作させるのは苦痛です。なぜなら、セットアップが難しく、外国語であり、開発者を苛立たせる可能性があるからです。
いくつかのオプションがあります。
- Sass:ネイティブRuby + Sass
- プロ:最速のサーバーコンパイル
- プロ: Sassの最新バージョンを使用できる
- 短所:立ち上がって実行するための大規模な手間
- 欠点:すべてのサーバーまたはワークステーションでRubyの設定が必要
- 短所: .NET開発者がRuby /統合の問題を解決するのが難しい
- Sass:[IronRuby] [5] + SassのようなRuby .NETポート
- プロ:遅いサーバーのコンパイル(フロントエンドの開発者が不満を言う!)
- プロ: Sassの最新バージョンを使用できない場合があります
- プロ:ネイティブRubyよりも設定が少し簡単
- 欠点:すべてのサーバーまたはワークステーションでRubyの設定が必要
- 短所: .NET開発者がRuby /統合の問題を解決するのが難しい
- Sass:[BundleTransformer] [7] + Sassで[.NETバンドル] [8]を拡張
- プロ:(IronRubyを使用)SLOWサーバーのコンパイル(フロントエンドの開発者が文句を言うでしょう!)
- プロ:(IronRubyを使用)Sassの最新バージョンを使用できない場合がある
- プロ:(IronRubyを使用)ネイティブRubyよりも設定が少し簡単
- 欠点:すべてのサーバーまたはワークステーションでRubyの設定が必要
- 短所: .NET開発者がRuby /統合の問題を解決するのが難しい
- SassまたはLESS:[Mindscape Workbench] [4]のようなVisual Studioプラグイン
- プロ:簡単に始められます
- プロ:高速コンパイル
- 欠点: Sassスタイルを使用するすべての開発者にはIDEプラグインが必要です
- 短所:サーバーのスタイルをすばやく変更できない-ローカルでの再処理が必要
- LESS:[DotLessCSS] [6]のような.NETポート
- プロ:サーバーの高速コンパイル
- プロ:セットアップがとても簡単
- プロ: C#.NET開発者にとって快適
- プロ: IDE /ワークステーション/サーバー要件なし-Webアプリ自体に含めます
- 短所: SASS / Compassの汎用性がなく、常に最新のLESS.JS構文の互換性を保証できるわけではありません
- Sass:[Vagrant] [9]を使用してLinux + Rubyを仮想化
- 長所:思ったほどセットアップがひどくない
- プロ:速い!!
- プロ:最新のフロントエンドツール(Sass、Compassなど)、linuxパッケージマネージャーで更新
- 短所: Linux以外のユーザーは初期設定が難しい場合があります
- 欠点:環境要件にVMのホスティングが含まれる
- 欠点: VMにスケーラビリティ/メンテナンスの問題がある可能性があります
私の意見では、[DotLessCSS] [6]を使用するLESSは、上記の理由から、典型的なWeb開発プロジェクトに最適です。
数年前、私は[DotLessCSS] [6]に迷惑なバグと制限があることを発見しましたが、2012年にいくつかのプロジェクトで[DotLessCSS] [6]を再び使用して、セットアップに非常に満足しています。Sass / Rubyを使用して開発者に苦痛を与えず、LESSからほとんどの価値を引き出します。何よりも、IDEやワークステーションの要件はありません。
[1]:http : //sass-lang.com/ [2]:http : //compass-style.org/ [3]:http : //lesscss.org/ [4]: http:// www。 mindscapehq.com/products/web-workbench [5]:http : //www.ironruby.net/ [ 6]:http : //www.dotlesscss.org/ [7]:http : //bundletransformer.codeplex.com / [8]:http : //weblogs.asp.net/scottgu/archive/2011/11/27/new-bundling-and-minification-support-asp-net-4-5-series.aspx [9]:http://www.vagrantup.com/
SassをVisual Studioに移行する方法のスクリーンショットを含む詳細な手順を記載したVisual Studioアドインを作成しました。ここで確認してください-http://giri.sh/2011/01/21/sass-for-visual-studio-2010/
SASSではありませんが、.NETポート用のLess Cssをご覧ください。コンパスは本当に面白いように見えますが、私はこのようなLessのようなものが素晴らしい追加になると思います。
私はこれを昨日見つけたばかりですが、sass / scssを除いて、JS(まだCSSではない)の自動化とファイルの結合を処理することを除いて、非常に有望に見えます。私が望んでいることの1つは、誰かがsass / scssファイルを編集するためのVSプラグインを作成することです。私が問題を見つけたのは、sass / scssコードにエラーがある場合、生成されたCSSファイルのテストまたは検査を行っているだけであるということです。私はそれをすべてのペースで実行したわけではありませんが、これまでのところとても良いです。
#PostBuild.rb
#from http://sentia.com.au/2008/08/sassing-a-net-application.html
#Post-build event command line: rake -f "$(ProjectDir)PostBuild.rb"
require 'haml'
require 'sass'
task :default => [ :stylesheets ]
desc 'Regenerates all sass templates.'
task :stylesheets do
wd = File.dirname(__FILE__)
sass_root = File.join(wd, 'Stylesheets')
css_root = File.join(wd, 'Content')
Dir[sass_root + '/*.sass'].each do |sass|
css = File.join(css_root, File.basename(sass, '.sass') + '.css')
puts "Sassing #{sass} to #{css}."
File.open(css, 'w') do |f|
f.write(Sass::Engine.new(IO.read(sass)).render)
end
end
end