When I just run middleman
to serve, all.css
gets compiled fine, consisting of just a call to +box-shadow(none)
:
/* line 1, /home/yang/asdf/source/stylesheets/content.css.sass */
div {
-webkit-box-shadow: none;
-moz-box-shadow: none;
box-shadow: none; }
But when I build the site, I get this Sass/Compass error:
$ 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>'
I have reproduced this in the following small simple example, which I've also included as a base64-encoded tar.gz at the bottom if you want to repro locally. It also includes the full backtrace.
Here's the tree of files:
asdf
├── config.rb
├── config.ru
├── error
├── Gemfile
├── Gemfile.lock
├── source
│ └── stylesheets
│ ├── all.css.sass
│ └── content.css.sass
Here are all the file contents:
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: see tar.gz
all.css.sass:
@import compass/css3/box-shadow
@import content
content.css.sass:
div
+box-shadow(none)
Here's the base64-encodede tar.gz, which you can decode with base64 -d
:
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
Thanks in advance for any help!
This turned out to be due to some files that aren't meant to be output having names that do not start with an underscore. E.g., content.css.sass
should be _content.css.sass
, so that middleman
knows not to try to build that file directly. (We aren't really familiar with middleman
etc. - this was a bundle handed to us, so it took a while to track this down.)
So I bumped into this and wanted to give a more precise answer:
Any @import
ed file in the chain downstream from a non-underscore named file will break with an error such as Sass::SyntaxError
Undefined Variable
or Undefined mixin
.
It's as simple as making sure every file in the chain starts with an underscore; sometimes very easy to pass by!
来源:https://stackoverflow.com/questions/16095388/why-does-middleman-serve-work-but-middleman-build-fails-to-compile-this-sas