【发布时间】:2016-05-02 04:47:12
【问题描述】:
我在资产管道内的 Rails 3.2 项目中使用 AngularJS 1.5。当我像这样编译资产时;
rake assets:precompile
尝试编译时出现此错误
/usr/local/rbenv/versions/2.1.5/bin/ruby ./bin/rake assets:precompile:all RAILS_ENV=production RAILS_GROUPS=assets
Multithreading on 1 processors
Starting Asset Compile: 2016-05-02 01:49:20 UTC
/usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/rails-assets-angular-material-1.1.0.rc4/app/assets/stylesheets/angular-material/layouts/angular-material.layouts.ie_fixes.scss:25: Invalid CSS after "and ": expected "{", was "(max-width: 599..." (Sass::SyntaxError)
(in /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/rails-assets-angular-material-1.1.0.rc4/app/assets/stylesheets/angular-material/layouts/angular-material.layouts.ie_fixes.scss)
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/sass-3.4.22/lib/sass/scss/parser.rb:1189:in `expected'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/sass-3.4.22/lib/sass/scss/parser.rb:1125:in `expected'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/sass-3.4.22/lib/sass/scss/parser.rb:1120:in `tok!'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/sass-3.4.22/lib/sass/scss/parser.rb:656:in `block'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/sass-3.4.22/lib/sass/scss/parser.rb:409:in `media_directive'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/sass-3.4.22/lib/sass/scss/parser.rb:222:in `special_directive'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/sass-3.4.22/lib/sass/scss/parser.rb:197:in `directive'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/sass-3.4.22/lib/sass/scss/parser.rb:675:in `block_child'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/sass-3.4.22/lib/sass/scss/parser.rb:668:in `block_contents'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/sass-3.4.22/lib/sass/scss/parser.rb:125:in `stylesheet'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/sass-3.4.22/lib/sass/scss/parser.rb:41:in `parse'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/sass-3.4.22/lib/sass/engine.rb:406:in `_to_tree'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/sass-3.4.22/lib/sass/engine.rb:281:in `render'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/sass-rails-3.2.6/lib/sass/rails/template_handlers.rb:106:in `evaluate'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/tilt-1.4.1/lib/tilt/template.rb:103:in `render'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/sprockets-2.2.3/lib/sprockets/context.rb:193:in `block in evaluate'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/sprockets-2.2.3/lib/sprockets/context.rb:190:in `each'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/sprockets-2.2.3/lib/sprockets/context.rb:190:in `evaluate'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/turbo-sprockets-rails3-0.3.14/lib/turbo-sprockets/sprockets_overrides/processed_asset.rb:16:in `initialize'
rake aborted!
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/turbo-sprockets-rails3-0.3.14/lib/turbo-sprockets/sprockets_overrides/base.rb:18:in `new'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/turbo-sprockets-rails3-0.3.14/lib/turbo-sprockets/sprockets_overrides/base.rb:18:in `block in build_asset'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/sprockets-2.2.3/lib/sprockets/base.rb:270:in `circular_call_protection'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/turbo-sprockets-rails3-0.3.14/lib/turbo-sprockets/sprockets_overrides/base.rb:14:in `build_asset'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/sprockets-2.2.3/lib/sprockets/index.rb:93:in `block in build_asset'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/sprockets-2.2.3/lib/sprockets/caching.rb:19:in `cache_asset'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/sprockets-2.2.3/lib/sprockets/index.rb:92:in `build_asset'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/sprockets-2.2.3/lib/sprockets/base.rb:169:in `find_asset'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/turbo-sprockets-rails3-0.3.14/lib/turbo-sprockets/sprockets_overrides/index.rb:14:in `find_asset'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/turbo-sprockets-rails3-0.3.14/lib/turbo-sprockets/sprockets_overrides/bundled_asset.rb:12:in `initialize'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/turbo-sprockets-rails3-0.3.14/lib/turbo-sprockets/sprockets_overrides/base.rb:22:in `new'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/turbo-sprockets-rails3-0.3.14/lib/turbo-sprockets/sprockets_overrides/base.rb:22:in `build_asset'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/sprockets-2.2.3/lib/sprockets/index.rb:93:in `block in build_asset'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/sprockets-2.2.3/lib/sprockets/caching.rb:19:in `cache_asset'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/sprockets-2.2.3/lib/sprockets/index.rb:92:in `build_asset'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/sprockets-2.2.3/lib/sprockets/base.rb:169:in `find_asset'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/turbo-sprockets-rails3-0.3.14/lib/turbo-sprockets/sprockets_overrides/index.rb:14:in `find_asset'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/sprockets-2.2.3/lib/sprockets/manifest.rb:178:in `block in find_asset'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/sprockets-2.2.3/lib/sprockets/manifest.rb:199:in `benchmark'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/sprockets-2.2.3/lib/sprockets/manifest.rb:177:in `find_asset'
EOFError: end of file reached
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/sprockets-derailleur-0.0.9/lib/sprockets-derailleur/manifest.rb:101:in `block (2 levels) in worker'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/2.1.0/benchmark.rb:279:in `measure'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/sprockets-derailleur-0.0.9/lib/sprockets-derailleur/manifest.rb:98:in `block in worker'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/sprockets-derailleur-0.0.9/lib/sprockets-derailleur/manifest.rb:90:in `fork'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/sprockets-derailleur-0.0.9/lib/sprockets-derailleur/manifest.rb:90:in `worker'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/sprockets-derailleur-0.0.9/lib/sprockets-derailleur/manifest.rb:30:in `block (2 levels) in compile'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/sprockets-derailleur-0.0.9/lib/sprockets-derailleur/manifest.rb:29:in `times'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/sprockets-derailleur-0.0.9/lib/sprockets-derailleur/manifest.rb:29:in `block in compile'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/2.1.0/benchmark.rb:279:in `measure'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/sprockets-derailleur-0.0.9/lib/sprockets-derailleur/manifest.rb:10:in `compile'
from /home/map7/code/pais/config/initializers/sprockets_derailleur.rb:11:in `compile'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/turbo-sprockets-rails3-0.3.14/lib/turbo-sprockets/tasks/assets.rake:108:in `internal_precompile'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/turbo-sprockets-rails3-0.3.14/lib/turbo-sprockets/tasks/assets.rake:115:in `block (3 levels) in <top (required)>'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/rake-10.3.2/lib/rake/task.rb:240:in `call'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/rake-10.3.2/lib/rake/task.rb:240:in `block in execute'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/rake-10.3.2/lib/rake/task.rb:235:in `each'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/rake-10.3.2/lib/rake/task.rb:235:in `execute'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/rake-10.3.2/lib/rake/task.rb:179:in `block in invoke_with_call_chain'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/2.1.0/monitor.rb:211:in `mon_synchronize'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/rake-10.3.2/lib/rake/task.rb:172:in `invoke_with_call_chain'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/rake-10.3.2/lib/rake/task.rb:165:in `invoke'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/rake-10.3.2/lib/rake/application.rb:150:in `invoke_task'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/rake-10.3.2/lib/rake/application.rb:106:in `block (2 levels) in top_level'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/rake-10.3.2/lib/rake/application.rb:106:in `each'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/rake-10.3.2/lib/rake/application.rb:106:in `block in top_level'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/rake-10.3.2/lib/rake/application.rb:115:in `run_with_threads'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/rake-10.3.2/lib/rake/application.rb:100:in `top_level'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/rake-10.3.2/lib/rake/application.rb:78:in `block in run'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/rake-10.3.2/lib/rake/application.rb:176:in `standard_exception_handling'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/rake-10.3.2/lib/rake/application.rb:75:in `run'
from /usr/local/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/rake-10.3.2/bin/rake:33:in `<top (required)>'
from ./bin/rake:16:in `load'
from ./bin/rake:16:in `<main>'
/home/map7/code/pais/config/initializers/sprockets_derailleur.rb:11:in `compile'
Tasks: TOP => assets:precompile:all
(See full trace by running task with --trace)
rake aborted!
Command failed with status (1): [/usr/local/rbenv/versions/2.1.5/bin/ruby ....]
Tasks: TOP => assets:precompile
(See full trace by running task with --trace)
如果我在 gem 中将 angular-material.layouts.ie_fixes.scss 文件重命名为 .bak ,那么它可以工作,但这不是一个好的解决方案。
现在有没有办法在 assets:precompile 中排除这个文件?
更新
这是 angular-material.layouts.ie_fixes.scss 文件中的行,我认为它实际上是在抱怨第 23 行,即使它说的是 25。
23 @media screen\0
24 and (max-width: 599px) {
25 .flex-xs {
26 -webkit-flex: 1 1 0%;
27 -ms-flex: 1 1 0%;
28 flex: 1 1 0%;
29 }
30 }
更新
这是我的 application.scss 文件的顶部
/*
*= require angular-bootstrap
*= require angular-xeditable
*= require app/bower_components/angular-material/angular-material.min
*= require app/bower_components/angular-material-data-table/dist/md-data-table
*= require textAngular
*= require header
*= require nav
*= require tables
*= require error
*= require help
*= require dashboard
*= require listing
*= require form
*= require timesheets
*= require invoices
*= require reports
*= require print
*= require jquery.ui.datepicker
*= require font-awesome
*= require ng-table
*/
/*
all.css.scss
Holds global styles for common elements throughout all pages which are not covered in specific stylesheets.
*/
@import "global.css.scss";
@import url(https://fonts.googleapis.com/css?family=Roboto:300,500,700);
...
【问题讨论】:
-
你能把代码粘贴到“angular-material.layouts.ie_fixes.scss:25”周围吗?
-
删除有问题的行会暂时解决问题吗?
-
如果我删除 23 到 30 行,它仍然会失败,但在下一个几乎相同的块上,但最大宽度为:600px。它仍然有那个屏幕\0 代码。
-
如果我在 ie_fixes 文件中将所有 screen\0 更改为 screen\\0,那么我的编译工作。
-
我如何暂时从我的预编译中忽略这个文件,直到 angular-material 解决了这个问题?
标签: ruby-on-rails angularjs asset-pipeline angular-material