2

我正在尝试在非 Rails/Rack 项目中使用 Sprockets,我遇到了Simone Carletti 的操作指南

我的项目设置如下:

.
Gemfile
Rakefile
/src
    /javascripts
    /stylesheets
        960.css

宝石文件:

source "http://rubygems.org"

gem 'sass'
gem 'sprockets'

耙文件:

require 'rubygems'
require 'bundler'
require 'pathname'
require 'logger'
require 'fileutils'

Bundler.require

ROOT        = Pathname(File.dirname(__FILE__))
LOGGER      = Logger.new(STDOUT)
BUNDLES     = %w( all.css all.js )
BUILD_DIR   = ROOT.join("build")
SOURCE_DIR  = ROOT.join("src")

task :compile => :cleanup do
  sprockets = Sprockets::Environment.new(ROOT) do |env|
    env.logger = LOGGER
  end

  sprockets.append_path(SOURCE_DIR.join('javascripts').to_s)
  sprockets.append_path(SOURCE_DIR.join('stylesheets').to_s)

  BUNDLES.each do |bundle|
    assets = sprockets.find_asset(bundle)
    prefix, basename = assets.pathname.to_s.split('/')[-2..-1]
    FileUtils.mkpath BUILD_DIR.join(prefix)

    assets.write_to(BUILD_DIR.join(prefix, basename))
    assets.to_a.each do |asset|
      # strip filename.css.foo.bar.css multiple extensions
      realname = asset.pathname.basename.to_s.split(".")[0..1].join(".")
      asset.write_to(BUILD_DIR.join(prefix, realname))
    end
  end
end

我跑

bundle install

并且捆绑包安装成功。

当我跑

rake compile

我收到以下错误

rake aborted!
Don't know how to build task 'cleanup'

Tasks: TOP => compile
(See full trace by running task with --trace)

关于为什么会发生这种情况的任何想法?如果这有助于调试此问题,请使用 ruby​​ 1.9.3p194。

4

1 回答 1

2
task :compile => :cleanup do

这意味着任务:compile需要:cleanup,但您没有:cleanup定义任务。将其更改为

task :compile do
于 2012-09-29T15:33:28.030 回答