javascript - gulp-svg-sprites 输出 [Object object] 而不是图标

标签 javascript html css svg gulp

我想使用 gulp-svg-spritessymbols 构建 svg sprite .但是我得到了错误的输出:未生成图标([Object object] in <symbol>),路径错误,似乎某些编译器不起作用。

gulpfile.js

var gulp = require('gulp'),
    svgSprite = require('gulp-svg-sprites');

gulp.task('sprites', function () {
    return gulp.src('icons/*.svg')
        .pipe(svgSprite({mode: "symbols"}))
        .pipe(gulp.dest("images"));
});

生成 symbols.html包含

<h4>Files Generated:</h4>
    <ol>
        <li><a href="{config.svg.symbols}">{config.svg.symbols}</a></li>
    </ol>

生成 symbols.svg包含

<symbol id="big_icon_1" viewBox="0 0 55 59">

      [object Object] [object Object]

  </symbol>

这就是最终输出,没有任何变化。 也许缺少了什么。我已经安装了 node-gyp 虽然我不需要它(我尝试一切来解决问题)。 它可以是什么?缺什么?也许还有其他一些方法可以生成符号 svg Sprite ?

最佳答案

我也遇到了同样的问题,找不到解决办法。 但是找到了其他 gulp 插件 gulp-svg-symbols而且效果很好。

example

我的配置:

var $ = require('gulp-load-plugins')();
var gulp = require('gulp');

module.exports = function(options) {
    return function() {
        return gulp.src(options.src)
            .pipe($.svgSymbols({
                id: "icon-%f"
            }))
            .pipe($.rename(function(file) {
                file.basename = 'sprite';
                return file;
            }))
            .pipe($.if( /[.]svg$/, gulp.dest(options.dest)));
    };
};

关于javascript - gulp-svg-sprites 输出 [Object object] 而不是图标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40504458/

相关文章:

html - 如何设置div表中列的宽度?

css - 在移动设备上呈现的普通 <select> 元素与 Bootstrap 的下拉元素

java - Htmlunit 通过单击按钮跳过页面

javascript - 如何从api获取json数组

javascript - switch 语句中的变量 case 列表

javascript - 父节点相对节点距离

jQuery 可折叠 UL

python - 如何使 html div 元素跟随垂直滚动(在 html/django 中)?

javascript - 带有变量的复杂 Jquery 选择器

onload 事件中的 JavaScript 图像