1

从 Rake 任务调用 nodejs 的正确方法是什么?我想将一些 LESS 文件编译成 CSS。我已经全局安装了 cssless 编译器。

4

1 回答 1

0

使用 lessc 命令调用的命令行 Less 编译器应该可以工作。

您可以从安装 Less 的 Ruby 版本开始,这使得 Less 编译器可用于 Ruby:sudo gem install less

请注意,如果要使此编译器正常工作,您还必须安装 ruby​​racer ( 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
于 2014-10-07T19:24:23.373 回答