2013-04-19 12 views
5

Quando ho appena eseguito middleman per servire, all.css viene compilato bene, che consiste di solo una chiamata a +box-shadow(none):Perché `middleman serve` funziona, ma` middleman build` non riesce a compilare questo Sass?

/* line 1, /home/yang/asdf/source/stylesheets/content.css.sass */ 
div { 
    -webkit-box-shadow: none; 
    -moz-box-shadow: none; 
    box-shadow: none; } 

Ma quando ho costruire il sito, ottengo questo errore Sass/Compass:

$ middleman build 
Slim::EmbeddedEngine is deprecated, it is called Slim::Embedded in Slim 2.0 
Slim::EmbeddedEngine is deprecated, it is called Slim::Embedded in Slim 2.0 
Slim::EmbeddedEngine is deprecated, it is called Slim::Embedded in Slim 2.0 
/home/yang/asdf/source/stylesheets/content.css.sass:2:in `box-shadow': Undefined mixin 'box-shadow'. (Sass::SyntaxError) 
    (in /home/yang/asdf/source/stylesheets/content.css.sass:2) 
     from /home/yang/asdf/source/stylesheets/content.css.sass:2 
     from /var/lib/gems/1.9.1/gems/sass-3.2.7/lib/sass/tree/visitors/perform.rb:253:in `visit_mixin' 
     from /var/lib/gems/1.9.1/gems/sass-3.2.7/lib/sass/tree/visitors/base.rb:37:in `visit' 
     from /var/lib/gems/1.9.1/gems/sass-3.2.7/lib/sass/tree/visitors/perform.rb:100:in `visit' 
     from /var/lib/gems/1.9.1/gems/sass-3.2.7/lib/sass/tree/visitors/base.rb:53:in `block in visit_children' 
     from /var/lib/gems/1.9.1/gems/sass-3.2.7/lib/sass/tree/visitors/base.rb:53:in `map' 
     from /var/lib/gems/1.9.1/gems/sass-3.2.7/lib/sass/tree/visitors/base.rb:53:in `visit_children' 
     from /var/lib/gems/1.9.1/gems/sass-3.2.7/lib/sass/tree/visitors/perform.rb:109:in `block in visit_children' 
     from /var/lib/gems/1.9.1/gems/sass-3.2.7/lib/sass/tree/visitors/perform.rb:121:in `with_environment' 
     from /var/lib/gems/1.9.1/gems/sass-3.2.7/lib/sass/tree/visitors/perform.rb:108:in `visit_children' 
     from /var/lib/gems/1.9.1/gems/sass-3.2.7/lib/sass/tree/visitors/base.rb:37:in `block in visit' 
     from /var/lib/gems/1.9.1/gems/sass-3.2.7/lib/sass/tree/visitors/perform.rb:320:in `visit_rule' 
     from /var/lib/gems/1.9.1/gems/sass-3.2.7/lib/sass/tree/visitors/base.rb:37:in `visit' 
     from /var/lib/gems/1.9.1/gems/sass-3.2.7/lib/sass/tree/visitors/perform.rb:100:in `visit' 
     from /var/lib/gems/1.9.1/gems/sass-3.2.7/lib/sass/tree/visitors/base.rb:53:in `block in visit_children' 
     from /var/lib/gems/1.9.1/gems/sass-3.2.7/lib/sass/tree/visitors/base.rb:53:in `map' 
     from /var/lib/gems/1.9.1/gems/sass-3.2.7/lib/sass/tree/visitors/base.rb:53:in `visit_children' 
     from /var/lib/gems/1.9.1/gems/sass-3.2.7/lib/sass/tree/visitors/perform.rb:109:in `block in visit_children' 
     from /var/lib/gems/1.9.1/gems/sass-3.2.7/lib/sass/tree/visitors/perform.rb:121:in `with_environment' 
     from /var/lib/gems/1.9.1/gems/sass-3.2.7/lib/sass/tree/visitors/perform.rb:108:in `visit_children' 
     from /var/lib/gems/1.9.1/gems/sass-3.2.7/lib/sass/tree/visitors/base.rb:37:in `block in visit' 
     from /var/lib/gems/1.9.1/gems/sass-3.2.7/lib/sass/tree/visitors/perform.rb:128:in `visit_root' 
     from /var/lib/gems/1.9.1/gems/sass-3.2.7/lib/sass/tree/visitors/base.rb:37:in `visit' 
     from /var/lib/gems/1.9.1/gems/sass-3.2.7/lib/sass/tree/visitors/perform.rb:100:in `visit' 
     from /var/lib/gems/1.9.1/gems/sass-3.2.7/lib/sass/tree/visitors/perform.rb:7:in `visit' 
     from /var/lib/gems/1.9.1/gems/sass-3.2.7/lib/sass/tree/root_node.rb:20:in `render' 
     from /var/lib/gems/1.9.1/gems/sass-3.2.7/lib/sass/engine.rb:315:in `_render' 
     from /var/lib/gems/1.9.1/gems/sass-3.2.7/lib/sass/engine.rb:262:in `render' 
     from /var/lib/gems/1.9.1/gems/sprockets-sass-0.9.1/lib/sprockets/sass/sass_template.rb:40:in `evaluate' 
     from /var/lib/gems/1.9.1/gems/tilt-1.3.7/lib/tilt/template.rb:77:in `render' 
     from /var/lib/gems/1.9.1/gems/sprockets-2.9.2/lib/sprockets/context.rb:197:in `block in evaluate' 
     from /var/lib/gems/1.9.1/gems/sprockets-2.9.2/lib/sprockets/context.rb:194:in `each' 
     from /var/lib/gems/1.9.1/gems/sprockets-2.9.2/lib/sprockets/context.rb:194:in `evaluate' 
     from /var/lib/gems/1.9.1/gems/sprockets-2.9.2/lib/sprockets/processed_asset.rb:12:in `initialize' 
     from /var/lib/gems/1.9.1/gems/sprockets-2.9.2/lib/sprockets/base.rb:374:in `new' 
     from /var/lib/gems/1.9.1/gems/sprockets-2.9.2/lib/sprockets/base.rb:374:in `block in build_asset' 
     from /var/lib/gems/1.9.1/gems/sprockets-2.9.2/lib/sprockets/base.rb:395: 
     from /var/lib/gems/1.9.1/gems/sprockets-2.9.2/lib/sprockets/base.rb:373:in `build_asset' 
     from /var/lib/gems/1.9.1/gems/sprockets-2.9.2/lib/sprockets/index.rb:94:in `block in build_asset' 
     from /var/lib/gems/1.9.1/gems/sprockets-2.9.2/lib/sprockets/caching.rb:51:in `cache_asset' 
     from /var/lib/gems/1.9.1/gems/sprockets-2.9.2/lib/sprockets/index.rb:93:in `build_asset' 
     from /var/lib/gems/1.9.1/gems/sprockets-2.9.2/lib/sprockets/base.rb:287:in `find_asset' 
     from /var/lib/gems/1.9.1/gems/sprockets-2.9.2/lib/sprockets/index.rb:61:in `find_asset' 
     from /var/lib/gems/1.9.1/gems/sprockets-2.9.2/lib/sprockets/bundled_asset.rb:16:in `initialize' 
     from /var/lib/gems/1.9.1/gems/sprockets-2.9.2/lib/sprockets/base.rb:377:in `new' 
     from /var/lib/gems/1.9.1/gems/sprockets-2.9.2/lib/sprockets/base.rb:377:in `build_asset' 
     from /var/lib/gems/1.9.1/gems/sprockets-2.9.2/lib/sprockets/index.rb:94:in `block in build_asset' 
     from /var/lib/gems/1.9.1/gems/sprockets-2.9.2/lib/sprockets/caching.rb:51:in `cache_asset' 
     from /var/lib/gems/1.9.1/gems/sprockets-2.9.2/lib/sprockets/index.rb:93:in `build_asset' 
     from /var/lib/gems/1.9.1/gems/sprockets-2.9.2/lib/sprockets/base.rb:287:in `find_asset' 
     from /var/lib/gems/1.9.1/gems/sprockets-2.9.2/lib/sprockets/index.rb:61:in `find_asset' 
     from /var/lib/gems/1.9.1/gems/sprockets-2.9.2/lib/sprockets/environment.rb:75:in `find_asset' 
     from /var/lib/gems/1.9.1/gems/sprockets-2.9.2/lib/sprockets/server.rb:47:in `call' 
     from /var/lib/gems/1.9.1/gems/middleman-sprockets-3.0.11/lib/middleman-sprockets/extension.rb:200:in `call' 
     from /var/lib/gems/1.9.1/gems/rack-1.4.5/lib/rack/builder.rb:134:in `call' 
     from /var/lib/gems/1.9.1/gems/rack-1.4.5/lib/rack/urlmap.rb:64:in `block in call' 
     from /var/lib/gems/1.9.1/gems/rack-1.4.5/lib/rack/urlmap.rb:49:in `each' 
     from /var/lib/gems/1.9.1/gems/rack-1.4.5/lib/rack/urlmap.rb:49:in `call' 
     from /var/lib/gems/1.9.1/gems/middleman-more-3.0.13/lib/middleman-more/extensions/minify_javascript.rb:51:in `call' 
     from /var/lib/gems/1.9.1/gems/middleman-more-3.0.13/lib/middleman-more/extensions/minify_css.rb:50:in `call' 
     from /var/lib/gems/1.9.1/gems/rack-1.4.5/lib/rack/builder.rb:134:in `call' 
     from /var/lib/gems/1.9.1/gems/rack-test-0.6.2/lib/rack/mock_session.rb:30:in `request' 
     from /var/lib/gems/1.9.1/gems/rack-test-0.6.2/lib/rack/test.rb:230:in `process_request' 
     from /var/lib/gems/1.9.1/gems/rack-test-0.6.2/lib/rack/test.rb:57:in `get' 
     from /var/lib/gems/1.9.1/gems/middleman-core-3.0.13/lib/middleman-core/cli/build.rb:259:in `block in execute!' 
     from /var/lib/gems/1.9.1/gems/middleman-core-3.0.13/lib/middleman-core/cli/build.rb:256:in `each' 
     from /var/lib/gems/1.9.1/gems/middleman-core-3.0.13/lib/middleman-core/cli/build.rb:256:in `execute!' 
     from /var/lib/gems/1.9.1/gems/middleman-core-3.0.13/lib/middleman-core/cli/build.rb:198:in `invoke!' 
     from /var/lib/gems/1.9.1/gems/thor-0.15.4/lib/thor/actions.rb:95:in `action' 
     from /var/lib/gems/1.9.1/gems/middleman-core-3.0.13/lib/middleman-core/cli/build.rb:65:in `build' 
     from /var/lib/gems/1.9.1/gems/thor-0.15.4/lib/thor/task.rb:27:in `run' 
     from /var/lib/gems/1.9.1/gems/thor-0.15.4/lib/thor/invocation.rb:120:in `invoke_task' 
     from /var/lib/gems/1.9.1/gems/thor-0.15.4/lib/thor.rb:275:in `dispatch' 
     from /var/lib/gems/1.9.1/gems/thor-0.15.4/lib/thor/base.rb:425:in `start' 
     from /var/lib/gems/1.9.1/gems/middleman-core-3.0.13/lib/middleman-core/cli.rb:77:in `method_missing' 
     from /var/lib/gems/1.9.1/gems/thor-0.15.4/lib/thor/task.rb:29:in `run' 
     from /var/lib/gems/1.9.1/gems/thor-0.15.4/lib/thor/task.rb:126:in `run' 
     from /var/lib/gems/1.9.1/gems/thor-0.15.4/lib/thor/invocation.rb:120:in `invoke_task' 
     from /var/lib/gems/1.9.1/gems/thor-0.15.4/lib/thor.rb:275:in `dispatch' 
     from /var/lib/gems/1.9.1/gems/thor-0.15.4/lib/thor/base.rb:425:in `start' 
     from /var/lib/gems/1.9.1/gems/middleman-core-3.0.13/lib/middleman-core/cli.rb:22:in `start' 
     from /var/lib/gems/1.9.1/gems/middleman-core-3.0.13/bin/middleman:18:in `<top (required)>' 
     from /usr/local/bin/middleman:19:in `load' 
     from /usr/local/bin/middleman:19:in `<main>' 

Ho riprodotto questo nel seguente piccolo esempio semplice, che ho anche incluso come tar.gz codificato in base64 nella parte inferiore se si desidera eseguire la repro localmente. Include anche il backtrace completo.

Ecco l'albero di file:

asdf 
├── config.rb 
├── config.ru 
├── error 
├── Gemfile 
├── Gemfile.lock 
├── source 
│   └── stylesheets 
│    ├── all.css.sass 
│    └── content.css.sass 

Ecco tutti i contenuti di file:

config.rb:

require 'animate-sass' 
require 'susy' 
require 'slim' 
set :css_dir, 'stylesheets' 
set :js_dir, 'javascripts' 
set :images_dir, 'images' 
set :fonts_dir, 'fonts' 
configure :build do 
    activate :minify_css 
    activate :minify_javascript 
    activate :relative_assets 
    require "middleman-smusher" 
    activate :smusher 

config.ru:

require 'rubygems' 
require 'middleman/rack' 
run Middleman.server 

Gemfile:

source :rubygems 
gem "slim" 
gem "susy" 
gem "animate-sass" 
gem "middleman", "~>3.0.13" 
gem "middleman-smusher" 

Gemfile.lock: vedi tar.gz

all.css.sass:

@import compass/css3/box-shadow 
@import content 

content.css.sass:

div 
    +box-shadow(none) 

Ecco la base64 encodede tar.gz, che puoi decodificare con base64 -d:

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 

Grazie in anticipo per qualsiasi aiuto!

risposta

14

Ciò si è verificato a causa di alcuni file che non devono essere emessi con nomi che non iniziano con un carattere di sottolineatura. Ad esempio, content.css.sass dovrebbe essere _content.css.sass, in modo che middleman sappia che non provare a creare direttamente quel file. (Non abbiamo familiarità con middleman ecc. - questo era un pacchetto consegnato a noi, quindi ci è voluto un po 'per rintracciarlo.)

4

Quindi mi sono imbattuto in questo e volevo dare una risposta più precisa:

Qualsiasi file @import nella catena downstream da un file con nome non sottolineato verrà interrotto con un errore come Sass::SyntaxErrorUndefined Variable o Undefined mixin.

È semplice come assicurarsi che ogni file nella catena inizi con un trattino basso; a volte molto facile da passare!

+1

@cimmanon, la mia risposta va alla causalità, non solo "ecco cosa ho fatto". Se avessi saputo perché è successo data la risposta attuale, non l'avrei menzionato. Nello spirito della comunità, volevo dare una mano a qualcun altro che ci fosse, quindi non sono sicuro del motivo per cui avresti un downvote. Ad ogni modo, non mi interessa il downvote, solo che qualcuno potrebbe trovarlo utile in futuro. – kross