我听说过"闪电侠"Libsass。我从鲁比换成了格兰特。但无论我使用哪种编译方法(Ruby、grunt-contrib-sass、grunt-sass),速度都是一样的。编译引导scs 15秒。
grunt.js:
module.exports = function (grunt) {
require('time-grunt')(grunt);
grunt.initConfig({
watch: {
src: {
files: ['public_html/sass/*.scss'],
tasks: ['compass:dev']
},
options: {
livereload: true
}
},
compass: {
dev: {
options: {
config: 'config.rb'
}
}
}
});
grunt.loadNpmTasks('grunt-contrib-compass');
grunt.loadNpmTasks('grunt-sass');
grunt.loadNpmTasks('grunt-contrib-watch');
};
config.rb:
# Require any additional compass plugins here.
require 'bootstrap-sass'
# Set this to the root of your project when deployed:
http_path = "/"
css_dir = "public_html/css"
sass_dir = "public_html/sass"
images_dir = "public_html/images"
javascripts_dir = "public_html/js"
fonts_dir = "public_html/fonts"
# You can select your preferred output style here (can be overridden via the command line):
# output_style = :expanded or :nested or :compact or :compressed
# output_style = :expanded
environment = :development
# To enable relative paths to assets via compass helper functions. Uncomment:
relative_assets = true
# To disable debugging comments that display the original location of your selectors. Uncomment:
# line_comments = false
line_comments = true
sourcemap = true
sass_options = {:sourcemap => true}
# If you prefer the indented syntax, you might want to regenerate this
# project again passing --syntax sass, or you can uncomment this:
# preferred_syntax = :sass
# and then run:
# sass-convert -R --from scss --to sass sass scss && rm -rf sass && mv scss sass
在您的配置中,您仍在使用Compass编译SCSS文件,grunt-sass
任务既没有配置也没有运行。由于Compass是基于Ruby的,并且仍在使用Ruby SASS预处理器,因此您在编译时没有看到任何改进。
Libsass是SASS编译器的C/C++实现,它完全取消了Ruby。在这篇博客文章的评论中,提到Compass有很多Ruby依赖性,因此在可预见的未来不会移植到Libsass因此,如果您严重依赖Compass混合插件和函数,则必须使用Ruby预处理器
如果你可以取消指南针,你可以使用以下配置的grunt-sass
:
module.exports = function(grunt) {
grunt.initConfig({
watch: {
src: {
files: ['public_html/sass/*.scss'],
tasks: ['sass:dev']
},
options: {
livereload: true
}
},
sass: {
options: {
sourceMap: true,
outputStyle: 'expanded'
},
dev: {
files: [{
expand: true,
src: ['public_html/sass/**/*.{scss,sass}'],
dest: 'public_html/css/'
}]
}
}
});
grunt.loadNpmTasks('grunt-sass');
grunt.loadNpmTasks('grunt-contrib-watch');
}
查看grunt sass页面,了解有关可用选项的更多信息。