2013-04-19 11 views
5

Kiedy wystarczy uruchomić middleman służyć, all.css kompilowany w porządku, składający się tylko z wezwaniem do +box-shadow(none):Dlaczego `middleman serve` działa, ale` build middleman` nie potrafi skompilować tego Sassa?

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

ale kiedy zbudować witrynę, otrzymuję ten błąd Sass/Kompas:

$ 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>' 

Powtórzyłem to w poniższym małym prostym przykładzie, który również umieściłem jako kod tar64 zakodowany w base64 na dole, jeśli chcesz repro lokalnie. Obejmuje również pełny ślad śledzenia.

Oto drzewo plików:

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

Oto cała zawartość plików:

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: patrz tar.gz

all.css.sass:

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

content.css.sass:

div 
    +box-shadow(none) 

Oto base64-encodede tar.gz, który można dekodować przy pomocy base64 -d:

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 

Z góry dziękuję za pomoc!

Odpowiedz

14

Okazało się, że jest to spowodowane niektórymi plikami, które nie mają być wypisywane z nazwami, które nie zaczynają się od podkreślenia. Np., content.css.sass powinien być _content.css.sass, aby middleman nie próbował bezpośrednio skompilować tego pliku. (Nie jesteśmy naprawdę zna middleman itd. - był to pakiet przekazany do nas, więc zajęło to trochę czasu, aby śledzić to w dół.)

4

Więc wpadłem na to i chciał dać bardziej precyzyjną odpowiedź:

Dowolny plik w łańcuchu w dół od niewytwierdzonego nazwanego pliku zostanie uszkodzony z błędem, na przykład Sass::SyntaxErrorUndefined Variable lub Undefined mixin.

To tak proste, jak upewnienie się, że każdy plik w łańcuchu zaczyna się od podkreślenia; czasami bardzo łatwo przejść obok!

+1

@imimmanon, moja odpowiedź dotyczy przyczyn, a nie tylko "Oto co zrobiłem". Gdybym wiedział, dlaczego to się stało, biorąc pod uwagę obecną odpowiedź, nie wspomniałbym o tym. W duchu społeczności chciałem pomóc komuś innemu, kto na nią wpadł, więc nie jestem pewna, dlaczego byś się zgodził. Tak czy siak, nie dbam o to, że ktoś może okazać się przydatny w przyszłości. – kross

Powiązane problemy