GVKun编程网logo

css – 使用sprockets-sass加速罗盘sass编译

14

本文将为您提供关于css–使用sprockets-sass加速罗盘sass编译的详细介绍,同时,我们还将为您提供关于brackets使用brackets-sass插件怎样才能编译的scss输出到指定目

本文将为您提供关于css – 使用sprockets-sass加速罗盘sass编译的详细介绍,同时,我们还将为您提供关于brackets使用brackets-sass插件怎样才能编译的scss输出到指定目录、css – Sass – 前缀从文件导入的所有类(使用sass import或webpack loader)、css – Windows上未初始化的常量Sprockets :: SassCacheStore错误(在rails上学习ruby)、css – 使用SASS / Compass对准精灵的实用信息。

本文目录一览:

css – 使用sprockets-sass加速罗盘sass编译

css – 使用sprockets-sass加速罗盘sass编译

我正在使用罗盘(指南针精灵工具,包括)sass框架cli工具(罗盘手表,指南针编译)来创建app.css文件.该项目的Sass正在使用多个@import语句在sass partials中包含数十个.

问题是app.css文件编译超过2分钟(app.css是70000行长)之后,任何sass部分导入到app.scss文件中的每个小变化都会立即编译所有这些,而我只需要换一行.

我进行了广泛的研究,发现像这样的文章http://blog.teamtreehouse.com/tale-front-end-sanity-beware-sass-import,建议使用spockets而不是@import来包含sass partials.我比大多数人更喜欢这个解决方案,但是甚至需要大的重构来测试它是否也会起作用所有全局包括mixins和变量都需要包含在项目中使用的每个sass部分中,这也是不理想的.

经过一些研究后,我发现了这个https://github.com/petebrowne/sprockets-sass工具,它应该自动将@imports转换为spockets for require语句,并保留全局导入的能力.

问题是我不知道ruby并且没有使用任何ruby相关的其他然后“gem install”声明)))

知道ruby的人可以通过逐步解释如何使罗盘编译器与sprockets-sass一起工作来帮助我吗?

PS请不要建议像libsass这样的解决方案,就像我通过排除所有指南针精灵相关的东西来测试它,libsass也需要花费大量时间来编译40000行没有精灵(我怀疑部分问题不在编译中)速度但在时间系统需要创建400000行文件后).

解决方法

您唯一能做的就是将输出顶级文件(app.css)拆分为多个输出顶级文件,并在指南针编译结束时使用sprockets任务重新调整它们!

这样可以优化sass缓存的使用,最终的concat-task也很有效,因为它是一个简单的连接!

顺便说一句,目前,指南针被指南针作者Chris Eppstein制作的EyeGlass项目所取代.

因此,考虑使用(grunt / gulp)与libsass(一个用C/C++构建的sass编译器)和EyeGlass进行整个重构的想法,它将所有类似指南针的功能添加到sass中!

希望有帮助!

brackets使用brackets-sass插件怎样才能编译的scss输出到指定目录

brackets使用brackets-sass插件怎样才能编译的scss输出到指定目录

本地项目:

--Sass

---+ css

---+ scss

------+demo1.scss

---+ demo.html

---+ .brackets.json


.brackets.json文件内容:

/*
Resulting file tree will appear as follows:
+ bower_components/
|--- bourbon/app/assets/stylesheets/_bourbon.scss
+ css/
|--- app.css
|--- app.css.map
+ scss/
|--- app.scss
*/

/* REMOVE comments from json file before using this template */
{
    /* disable compiling other files that aren''t the "main" file */
    "sass.enabled": false,
    "sass.compiler": "libsass",
    "path": {
        "scss/demo1.scss": {
            "sass.enabled": true,
            "sass.options": {
                "outputDir": "../css/",
                "includePaths": [],
                "imagePath":null,
                "sourceComments": true,
                "outputStyle": "nested"
            },
            "linting.collapsed": false
        }
    }
}

但是我每次修改scss文件后,css和css.map都是在scss文件下生成的,怎么搞。。。

css – Sass – 前缀从文件导入的所有类(使用sass import或webpack loader)

css – Sass – 前缀从文件导入的所有类(使用sass import或webpack loader)

这个问题可能非常愚蠢和重复,但我无法找到解决问题的有效方法.我很抱歉,如果已经在其他地方回答了这个问题.

我想要做的是在一个项目中使用2个css框架.

我必须使用语义作为我的主要css框架 – 这必须是全局可访问的.例如,具有类“ui grid”的元素应该使用semanticUI的“ui grid”行为.

但是,我想使用Bulma作为我的辅助框架.为避免冲突,我想在所有Bulma类前面加上一个静态前缀.因此,例如Bulma的“模态”类将可以作为“bulma-modal”访问.
这样的事情:

.&bulma {
    @import '~bulma/bulma';
  }

这将(希望)避免所有类冲突,并且仍然允许我在同一范围内使用语义和Bulma.

感谢您的任何帮助或建议.

解决方法

在你的bulma scss文件中尝试这样

$my-name: mycss--;

.#{$my-name}btn {
  ...
}

.#{$my-name}input {
  ...
}

.#{$my-name}header {
  ...
}

css – Windows上未初始化的常量Sprockets :: SassCacheStore错误(在rails上学习ruby)

css – Windows上未初始化的常量Sprockets :: SassCacheStore错误(在rails上学习ruby)

我是网络开发的新手,我一直在 Windows机器上关注David Kehoe的Learn ruby​​ on rails教程.在过去的几天里,我遇到了同样的错误,我尝试了几乎所有可以在互联网上找到的解决方案.
<html>
  <head>
    <Meta name="viewport" content="width=device-width,initial-scale=1.0">
    <title><%= content_for?(:title) ? yield(:title) : "Learn Rails" %></title>
    <Meta name="description" content="<%= content_for?(:description) ? yield(:description) : "Learn Rails" %>">
    <%= stylesheet_link_tag 'application',media: 'all','data-turbolinks-track' => true %>
    <%# Modernizr is required for Zurb Foundation %>
    <%= javascript_include_tag 'vendor/modernizr' %>
    <%= javascript_include_tag 'application','data-turbolinks-track' => true %>
    <%= csrf_Meta_tags %>
  </head>

问题在于:

<%= stylesheet_link_tag 'application','data-turbolinks-track' => true %>

我已经安装了NodeJ,我不认为问题出在任何javascript文件中,因为如果我拿出那行就没有css.我也尝试删除没有帮助的require树.

这是我的Gemfile:

source 'https://rubygems.org'
ruby '2.1.5'
gem 'rails','4.2.2'


gem 'sqlite3'
gem 'sass-rails','~> 5.0'
gem 'uglifier','>= 1.3.0'
gem 'coffee-rails','~> 4.1.0'
gem 'jquery-rails'
gem 'turbolinks'
gem 'jbuilder','~> 2.0'
gem 'sdoc','~> 0.4.0',group: :doc

group :development,:test do
  gem 'byebug'
  gem 'web-console','~> 2.0'
end

# Windows does not include zoneinfo files,so bundle the tzinfo-data gem
gem 'tzinfo-data',platforms: [:mingw,:mswin,:x64_mingw,:jruby]

# learn-rails
gem 'activerecord-tableless' 
gem 'compass-rails','~> 2.0.alpha.0' 
gem 'figaro' 
gem 'gibbon' 
gem 'google_drive' 
gem 'high_voltage' 
gem 'simple_form' 
gem 'zurb-foundation' 
group :development do 
    gem 'better_errors' 
    gem 'quiet_assets' 
    gem 'rails_layout' 
end

和application.css.scss:

/*
 * This is a manifest file that'll be compiled into application.css,which will include all the files
 * listed below.
 *
 * Any CSS and SCSS file within this directory,lib/assets/stylesheets,vendor/assets/stylesheets,* or vendor/assets/stylesheets of plugins,if any,can be referenced here using a relative path.
 *
 * You're free to add application-wide styles to this file and they'll appear at the bottom of the
 * compiled file so the styles you add here take precedence over styles defined in any styles
 * defined in the other CSS/SCSS files in this directory. It is generally better to create a new
 * file per style scope.
 *
 *= require_tree .
 *= require_self
 */

有没有其他人遇到过这个问题并找到了解决方案?

这是当前错误的堆栈跟踪.由于某种原因,它从错误的争论数量(1对2)变为(3对2):

ArgumentError - wrong number of arguments (3 for 2):
  sprockets (3.2.0) lib/sprockets/sass_cache_store.rb:14:in `_store'
  sass (3.4.15) lib/sass/cache_stores/base.rb:51:in `store'
  sass (3.4.15) lib/sass/engine.rb:414:in `_to_tree'
  sass (3.4.15) lib/sass/engine.rb:309:in `to_tree'
  sass (3.4.15) lib/sass/engine.rb:343:in `_dependencies'
  sass (3.4.15) lib/sass/engine.rb:331:in `dependencies'
  compass-rails (2.0.4) lib/compass-rails/patches/sass_importer.rb:36:in `evalua
te'
  tilt (1.4.1) lib/tilt/template.rb:103:in `render'
  sprockets (3.2.0) lib/sprockets/legacy_tilt_processor.rb:25:in `call'
  sprockets (3.2.0) lib/sprockets/processor_utils.rb:75:in `call_processor'
  sprockets (3.2.0) lib/sprockets/processor_utils.rb:57:in `block in call_proces
sors'
  sprockets (3.2.0) lib/sprockets/processor_utils.rb:56:in `call_processors'
  sprockets (3.2.0) lib/sprockets/loader.rb:86:in `load_asset_by_uri'
  sprockets (3.2.0) lib/sprockets/loader.rb:45:in `block in load'
  sprockets (3.2.0) lib/sprockets/loader.rb:155:in `fetch_asset_from_dependency_
cache'
  sprockets (3.2.0) lib/sprockets/loader.rb:38:in `load'
  sprockets (3.2.0) lib/sprockets/cached_environment.rb:20:in `block in initiali
ze'
  sprockets (3.2.0) lib/sprockets/cached_environment.rb:47:in `load'
  sprockets (3.2.0) lib/sprockets/bundle.rb:23:in `block in call'
  sprockets (3.2.0) lib/sprockets/utils.rb:183:in `dfs'
  sprockets (3.2.0) lib/sprockets/bundle.rb:24:in `call'
  sprockets (3.2.0) lib/sprockets/processor_utils.rb:75:in `call_processor'
  sprockets (3.2.0) lib/sprockets/processor_utils.rb:57:in `block in call_proces
sors'
  sprockets (3.2.0) lib/sprockets/processor_utils.rb:56:in `call_processors'
  sprockets (3.2.0) lib/sprockets/loader.rb:86:in `load_asset_by_uri'
  sprockets (3.2.0) lib/sprockets/loader.rb:45:in `block in load'
  sprockets (3.2.0) lib/sprockets/loader.rb:155:in `fetch_asset_from_dependency_
cache'
  sprockets (3.2.0) lib/sprockets/loader.rb:38:in `load'
  sprockets (3.2.0) lib/sprockets/cached_environment.rb:20:in `block in initiali
ze'
  sprockets (3.2.0) lib/sprockets/cached_environment.rb:47:in `load'
  sprockets (3.2.0) lib/sprockets/base.rb:63:in `find_asset'
  sprockets (3.2.0) lib/sprockets/environment.rb:30:in `find_asset'
  sprockets (3.2.0) lib/sprockets/base.rb:89:in `[]'
  sprockets-rails (2.3.2) lib/sprockets/rails/helper.rb:230:in `lookup_asset_for
_path'
  sprockets-rails (2.3.2) lib/sprockets/rails/helper.rb:190:in `check_errors_for
'
  sprockets-rails (2.3.2) lib/sprockets/rails/helper.rb:159:in `block in stylesh
eet_link_tag'
  sprockets-rails (2.3.2) lib/sprockets/rails/helper.rb:158:in `stylesheet_link_
tag'
  app/views/layouts/application.html.erb:7:in `_app_views_layouts_application_ht
ml_erb___453486602_48019296'
  actionview (4.2.2) lib/action_view/template.rb:145:in `block in render'
  activesupport (4.2.2) lib/active_support/notifications.rb:166:in `instrument'
  actionview (4.2.2) lib/action_view/template.rb:333:in `instrument'
  actionview (4.2.2) lib/action_view/template.rb:143:in `render'
  actionview (4.2.2) lib/action_view/renderer/template_renderer.rb:66:in `render
_with_layout'
  actionview (4.2.2) lib/action_view/renderer/template_renderer.rb:52:in `render
_template'
  actionview (4.2.2) lib/action_view/renderer/template_renderer.rb:14:in `render
'
  actionview (4.2.2) lib/action_view/renderer/renderer.rb:42:in `render_template
'
  actionview (4.2.2) lib/action_view/renderer/renderer.rb:23:in `render'
  actionview (4.2.2) lib/action_view/rendering.rb:100:in `_render_template'
  actionpack (4.2.2) lib/action_controller/Metal/streaming.rb:217:in `_render_te
mplate'
  actionview (4.2.2) lib/action_view/rendering.rb:83:in `render_to_body'
  actionpack (4.2.2) lib/action_controller/Metal/rendering.rb:32:in `render_to_b
ody'
  actionpack (4.2.2) lib/action_controller/Metal/renderers.rb:37:in `render_to_b
ody'
  actionpack (4.2.2) lib/abstract_controller/rendering.rb:25:in `render'
  actionpack (4.2.2) lib/action_controller/Metal/rendering.rb:16:in `render'
  actionpack (4.2.2) lib/action_controller/Metal/instrumentation.rb:44:in `block
 (2 levels) in render'
  activesupport (4.2.2) lib/active_support/core_ext/benchmark.rb:12:in `block in
 ms'
  C:/RailsInstaller/Ruby2.1.0/lib/ruby/2.1.0/benchmark.rb:294:in `realtime'
  activesupport (4.2.2) lib/active_support/core_ext/benchmark.rb:12:in `ms'
  actionpack (4.2.2) lib/action_controller/Metal/instrumentation.rb:44:in `block
 in render'
  actionpack (4.2.2) lib/action_controller/Metal/instrumentation.rb:87:in `clean
up_view_runtime'
  activerecord (4.2.2) lib/active_record/railties/controller_runtime.rb:25:in `c
leanup_view_runtime'
  actionpack (4.2.2) lib/action_controller/Metal/instrumentation.rb:43:in `rende
r'
  actionpack (4.2.2) lib/action_controller/Metal/implicit_render.rb:10:in `defau
lt_render'
  actionpack (4.2.2) lib/action_controller/Metal/implicit_render.rb:5:in `send_a
ction'
  actionpack (4.2.2) lib/abstract_controller/base.rb:198:in `process_action'
  actionpack (4.2.2) lib/action_controller/Metal/rendering.rb:10:in `process_act
ion'
  actionpack (4.2.2) lib/abstract_controller/callbacks.rb:20:in `block in proces
s_action'
  activesupport (4.2.2) lib/active_support/callbacks.rb:117:in `call'
  activesupport (4.2.2) lib/active_support/callbacks.rb:555:in `block (2 levels)
 in compile'
  activesupport (4.2.2) lib/active_support/callbacks.rb:505:in `call'
  activesupport (4.2.2) lib/active_support/callbacks.rb:92:in `_run_callbacks'
  activesupport (4.2.2) lib/active_support/callbacks.rb:776:in `_run_process_act
ion_callbacks'
  activesupport (4.2.2) lib/active_support/callbacks.rb:81:in `run_callbacks'
  actionpack (4.2.2) lib/abstract_controller/callbacks.rb:19:in `process_action'

  actionpack (4.2.2) lib/action_controller/Metal/rescue.rb:29:in `process_action
'
  actionpack (4.2.2) lib/action_controller/Metal/instrumentation.rb:32:in `block
 in process_action'
  activesupport (4.2.2) lib/active_support/notifications.rb:164:in `block in ins
trument'
  activesupport (4.2.2) lib/active_support/notifications/instrumenter.rb:20:in `
instrument'
  activesupport (4.2.2) lib/active_support/notifications.rb:164:in `instrument'
  actionpack (4.2.2) lib/action_controller/Metal/instrumentation.rb:30:in `proce
ss_action'
  actionpack (4.2.2) lib/action_controller/Metal/params_wrapper.rb:250:in `proce
ss_action'
  activerecord (4.2.2) lib/active_record/railties/controller_runtime.rb:18:in `p
rocess_action'
  actionpack (4.2.2) lib/abstract_controller/base.rb:137:in `process'
  actionview (4.2.2) lib/action_view/rendering.rb:30:in `process'
  actionpack (4.2.2) lib/action_controller/Metal.rb:196:in `dispatch'
  actionpack (4.2.2) lib/action_controller/Metal/rack_delegation.rb:13:in `dispa
tch'
  actionpack (4.2.2) lib/action_controller/Metal.rb:237:in `block in action'
  actionpack (4.2.2) lib/action_dispatch/routing/route_set.rb:74:in `dispatch'
  actionpack (4.2.2) lib/action_dispatch/routing/route_set.rb:43:in `serve'
  actionpack (4.2.2) lib/action_dispatch/journey/router.rb:43:in `block in serve
'
  actionpack (4.2.2) lib/action_dispatch/journey/router.rb:30:in `serve'
  actionpack (4.2.2) lib/action_dispatch/routing/route_set.rb:819:in `call'
  rack (1.6.4) lib/rack/etag.rb:24:in `call'
  rack (1.6.4) lib/rack/conditionalget.rb:25:in `call'
  rack (1.6.4) lib/rack/head.rb:13:in `call'
  actionpack (4.2.2) lib/action_dispatch/middleware/params_parser.rb:27:in `call
'
  actionpack (4.2.2) lib/action_dispatch/middleware/flash.rb:260:in `call'
  rack (1.6.4) lib/rack/session/abstract/id.rb:225:in `context'
  rack (1.6.4) lib/rack/session/abstract/id.rb:220:in `call'
  actionpack (4.2.2) lib/action_dispatch/middleware/cookies.rb:560:in `call'
  activerecord (4.2.2) lib/active_record/query_cache.rb:36:in `call'
  activerecord (4.2.2) lib/active_record/connection_adapters/abstract/connection
_pool.rb:649:in `call'
  activerecord (4.2.2) lib/active_record/migration.rb:378:in `call'
  actionpack (4.2.2) lib/action_dispatch/middleware/callbacks.rb:29:in `block in
 call'
  activesupport (4.2.2) lib/active_support/callbacks.rb:88:in `_run_callbacks'
  activesupport (4.2.2) lib/active_support/callbacks.rb:776:in `_run_call_callba
cks'
  activesupport (4.2.2) lib/active_support/callbacks.rb:81:in `run_callbacks'
  actionpack (4.2.2) lib/action_dispatch/middleware/callbacks.rb:27:in `call'
  actionpack (4.2.2) lib/action_dispatch/middleware/reloader.rb:73:in `call'
  actionpack (4.2.2) lib/action_dispatch/middleware/remote_ip.rb:78:in `call'
  better_errors (2.1.1) lib/better_errors/middleware.rb:84:in `protected_app_cal
l'
  better_errors (2.1.1) lib/better_errors/middleware.rb:79:in `better_errors_cal
l'
  better_errors (2.1.1) lib/better_errors/middleware.rb:57:in `call'
  actionpack (4.2.2) lib/action_dispatch/middleware/debug_exceptions.rb:17:in `c
all'
  web-console (2.1.3) lib/web_console/middleware.rb:37:in `call'
  actionpack (4.2.2) lib/action_dispatch/middleware/show_exceptions.rb:30:in `ca
ll'
  railties (4.2.2) lib/rails/rack/logger.rb:38:in `call_app'
  railties (4.2.2) lib/rails/rack/logger.rb:20:in `block in call'
  activesupport (4.2.2) lib/active_support/tagged_logging.rb:68:in `block in tag
ged'
  activesupport (4.2.2) lib/active_support/tagged_logging.rb:26:in `tagged'
  activesupport (4.2.2) lib/active_support/tagged_logging.rb:68:in `tagged'
  railties (4.2.2) lib/rails/rack/logger.rb:20:in `call'
  quiet_assets (1.1.0) lib/quiet_assets.rb:27:in `call_with_quiet_assets'
  actionpack (4.2.2) lib/action_dispatch/middleware/request_id.rb:21:in `call'
  rack (1.6.4) lib/rack/methodoverride.rb:22:in `call'
  rack (1.6.4) lib/rack/runtime.rb:18:in `call'
  activesupport (4.2.2) lib/active_support/cache/strategy/local_cache_middleware
.rb:28:in `call'
  rack (1.6.4) lib/rack/lock.rb:17:in `call'
  actionpack (4.2.2) lib/action_dispatch/middleware/static.rb:113:in `call'
  rack (1.6.4) lib/rack/sendfile.rb:113:in `call'
  railties (4.2.2) lib/rails/engine.rb:518:in `call'
  railties (4.2.2) lib/rails/application.rb:164:in `call'
  rack (1.6.4) lib/rack/lock.rb:17:in `call'
  rack (1.6.4) lib/rack/content_length.rb:15:in `call'
  rack (1.6.4) lib/rack/handler/webrick.rb:88:in `service'
  C:/RailsInstaller/Ruby2.1.0/lib/ruby/2.1.0/webrick/httpserver.rb:138:in `servi
ce'
  C:/RailsInstaller/Ruby2.1.0/lib/ruby/2.1.0/webrick/httpserver.rb:94:in `run'
  C:/RailsInstaller/Ruby2.1.0/lib/ruby/2.1.0/webrick/server.rb:295:in `block in
start_thread'

解决方法

你正在使用一个旧的alpha版指南针,这是一个 known issue.

看完这个Github Issue之后听起来像宝石的工作组合是:

gem 'sass-rails','~> 5.0'
gem 'compass-rails','~> 2.0.4'

这应该工作.

css – 使用SASS / Compass对准精灵

css – 使用SASS / Compass对准精灵

我有使用Compass Sprites水平居中精灵的问题.

我有一堆不同大小的精灵用于图标,我希望它们以它们所在的容器为中心,所以它们是一个左手边的图标.

如果我这样做:

$sprite-position: 50%;
@import "sprite/*.png";

然后图像以生成的sprite.png为中心,但CSS实际上是这样的:

background-position: -9px -223px;

而不是预期的:

background-position: 50% -223px;

如果它具有专门声明的位置,那么将它集中在精灵上有什么意义呢?现在我把它硬编码为50%和Y轴很糟糕,因为当我添加一个新的精灵然后我必须改变它们所有完全违背目的.

我在Compass,CSS中做错了吗?或者它不能像它应该的那样工作?
我能看到这一切的唯一方法是让它指定尺寸然后包含图标并将其置于那里.虽然剩下50%的价值,所以你不需要这样做……对吗?

只是一个注意……很糟糕,指南针也不支持JPEG精灵 – 在首页上有大约6个促销图像,如果你只需要替换文件夹中的图像就可以了和它的排序!

谢谢,Dom

解决方法

只是纠结你的问题.我明白了你的观点并遇到同样的问题.我也试图找到一个通用的解决方案.但它似乎不可能是atm.

对我来说position offset option是有效的,但它并不完美,因为你必须将它应用于每个精灵:

@import "socialmedia/*.png";

a.twitter {
  @include socialmedia-sprite("twitter");
  @include socialmedia-sprite-position("twitter",50%);
}

a.facebook {
  @include socialmedia-sprite("facebook");
  @include socialmedia-sprite-position("facebook",50%);
}

这会覆盖水平值但保持垂直值.

正如我所说的那样,如果你不需要调整大量的怨恨,那就不完美了.你可以写一个mixin.但是,如果指南针本身提供这样的选择,那将会很棒.

今天关于css – 使用sprockets-sass加速罗盘sass编译的分享就到这里,希望大家有所收获,若想了解更多关于brackets使用brackets-sass插件怎样才能编译的scss输出到指定目录、css – Sass – 前缀从文件导入的所有类(使用sass import或webpack loader)、css – Windows上未初始化的常量Sprockets :: SassCacheStore错误(在rails上学习ruby)、css – 使用SASS / Compass对准精灵等相关知识,可以在本站进行查询。

本文标签: