Rakeタスクからnodejsを呼び出す正しい方法は何ですか? いくつかの LESS ファイルを CSS にコンパイルしたいと考えています。cssless コンパイラをグローバルにインストールしています。
1 に答える
lessc コマンドで呼び出されるコマンド ライン Less コンパイラは動作するはずです。
Less の Ruby バージョンをインストールすることから始めることができます。これにより、Less コンパイラを Ruby で使用できるようになります。sudo gem install less
このコンパイラを動作させるには、therubyracer ( sudo gem install therubyracer
) もインストールする必要があることに注意してください (コンパイラをノード バージョンに置き換える場合は必要ありません)。
これで、次のコマンドを実行できるはずです: lessc -v
. lessc 1.7.0 (LESS Compiler) [Ruby] 2.6.0
これにより、そのようなものがコンソールに出力されるはずです。
これらのステップの後npm install -g less
、Node Less コンパイラーをインストールするコマンドを実行できます (そして、Ruby コンパイラーを置き換えます。どちらのコマンドも実行可能ファイルを同じ場所にインストールします)。これで、lessc -v
コマンドは次をコンソールに出力するはずですlessc 1.7.5 (Less Compiler) [JavaScript]
最後に、Rake タスクを作成して Less をコンパイルできます。このようなタスクの例は、https ://gist.github.com/pfig/1969062 で見つけることができ、以下に示すようになります。
require 'rubygems'
require 'less'
require 'rake'
SOURCE = "."
LESS = File.join( SOURCE, "path", "to", "less", "files" )
CONFIG = {
'less' => File.join( LESS, "less" ),
'css' => File.join( LESS, "css" ),
'input' => "style.less",
'output' => "style.css"
}
desc "Compile Less"
task :lessc do
less = CONFIG['less']
input = File.join( less, CONFIG['input'] )
output = File.join( CONFIG['css'], CONFIG['output'] )
source = File.open( input, "r" ).read
parser = Less::Parser.new( :paths => [less] )
tree = parser.parse( source )
File.open( output, "w+" ) do |f|
f.puts tree.to_css( :compress => true )
end
end # task :lessc