我可以使用 gulp 将 sass 和 css 捆绑在bower_components下吗?



我使用gulp-compass和gulp-postcss。我找不到找到 css 文件和依赖项文件公共文件夹(如带有 gulp 的 webroot/css)的最佳方法。我显示部分吞咽文件.js波纹管。

var postcss = require('gulp-postcss');
var cssnano = require('cssnano');
var atImport = require('postcss-import');
        var vendorCssPath =
        [
            path.join(app_root,'/bower_components/material-design-icons/iconfont/material-icons.css')
        ];
    gulp.task('css', function () {
        var processors = [
            atImport(),
            cssnano()
        ];
        return gulp.src(vendorCssPath)
            .pipe(cache('css'))
            .pipe(postcss(processors))
            .pipe(gulp.dest(path.join(projectDir,'/css')));
    });

它适用于 material-icons.css,但此输出不包括依赖于的文件(例如:MaterialIcons-Regular.eot MaterialIcons-Regular.svg MaterialIcons-Regular.woff MaterialIcons-Regular.ijmap MaterialIcons-Regular.ttf MaterialIcons-Regular.woff2)。我希望这些资产使用 gulp 找到公用文件夹。虽然这已经足够了,但如果可能的话,最好这些文件和编译的css文件与gulp-compass捆绑到css文件中。

你有什么想法吗?

所以问题是你必须将字体从 bower 依赖项复制到你的构建文件夹(或者如果你使用其他任务来管理字体,则复制到你的 src 文件夹)。最好的方法是制作 gulp 任务,它将复制字体(如果您更新依赖项,您可以运行字体任务,它将复制更新的文件)。然后,您可以使用 SASS 添加字体:

// FONTS
// ---------------------------------------------------
@mixin font-face($fontFamily, $src, $fontName){
  @font-face {
    font-family: $fontFamily;
    src: url("#{$src}#{$fontName}.eot");
    src: url("#{$src}#{$fontName}.eot?#iefix") format("embedded-opentype"),
         url("#{$src}#{$fontName}.woff") format("woff"),
         url("#{$src}#{$fontName}.ttf") format("truetype"),
         url("#{$src}#{$fontName}.svg##{$fontFamily}") format("svg");
  }
}
@include font-face('Material Icons', '/assets/build/fonts/MaterialIcons/', 'MaterialIcons-Regular');

CSS可以包含在主SCSS文件中,例如在main.scss中:

@import './bower_components/material-design-icons/iconfont/material-icons.css';

您可以在此处阅读更多信息 http://google.github.io/material-design-icons/