【问题标题】:Can I bundle sass and css under bower_components with using gulp我可以使用 gulp 在 bower_components 下捆绑 sass 和 css
【发布时间】:2017-01-16 09:00:19
【问题描述】:

我使用 gulp-compass 和 gulp-postcss。 我找不到使用 gulp 找到 css 文件和依赖文件公共文件夹(如 webroot/css)的最佳方法。我在下面显示部分 gulpfile.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,但此输出不包含依赖于 (ex:MaterialIcons-Regular.eot MaterialIcons-Regular.svg MaterialIcons-Regular.woff MaterialIcons-Regular.ijmap MaterialIcons-Regular. ttf MaterialIcons-Regular.woff2)。 我希望这些资产使用 gulp 定位公共文件夹。虽然这已经足够了,但如果可能的话,最好将这些文件和使用 gulp-compass 编译的 css 文件捆绑到 css 文件中。

你有什么想法吗?

【问题讨论】:

    标签: css gulp postcss


    【解决方案1】:

    所以问题是您必须将字体从 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');
    

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

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

    您可以在这里阅读更多内容http://google.github.io/material-design-icons/

    【讨论】:

    • 感谢您的建议。我找到了解决方案,我明白我应该用gulp-starter 为它做 gulp 任务。这个存储库非常棒,有许多特定的配置案例。感谢您的建议。
    猜你喜欢
    • 2014-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-26
    • 1970-01-01
    相关资源
    最近更新 更多