从gulp-svg-sprite构建过程中排除SVG

时间:2018-02-05 17:17:54

标签: svg gulp icons sprite svg-sprite

我目前正在使用gulp-svg-sprite构建一个SVG Icon系统,并且遇到了我需要从构建过程中排除某些图标的情况。

有没有办法排除SVG运行这两个管道?不知何故,我需要获取src文件名并将其与我想要排除的SVG进行比较,如下所示:

Option Explicit
'/ Declare with events
Dim WithEvents frmCh As frmChild

Private Sub TextBox1_DblClick(ByVal cancel As MSForms.ReturnBoolean)
    handleDoubleClick
End Sub
Sub handleDoubleClick()

    If frmCh Is Nothing Then
        Set frmCh = New frmChild
    End If

    frmCh.Show False

End Sub

'/ Handle the event
Private Sub frmCh_cClicked(cancel As Boolean)
    Me.TextBox1.Text = frmCh.bChecked
End Sub

我不希望通过SVGO和其他插件优化特定图标,以用于需要2条可路径路径的1-off SVG。

以下是我正在使用的代码:

Option Explicit

Event cClicked(cancel As Boolean)
Private m_bbChecked As Boolean

Public Property Get bChecked() As Boolean
    bChecked = m_bbChecked
End Property

Public Property Let bChecked(ByVal bNewValue As Boolean)
    m_bbChecked = bNewValue
End Property

Private Sub CheckBox1_Click()
    Me.bChecked = Me.CheckBox1.Value
    '/ Raise an event when something happens.
    '/ Caller will handle it.
    RaiseEvent cClicked(False)
End Sub

我是gulp&的新手。节点,所以任何帮助将不胜感激!

谢谢, - 瑞恩

1 个答案:

答案 0 :(得分:0)

使用gulp-filter

const filter = require('gulp-filter');

类似

var excludeIconArray = ["iconToExclude1.svg", "iconToExclude2.svg", etc.]

const svgBuild = src => {

  const svgFilter = filter(file => {

    // will probably need file.path string manipulations here
    // file.path is the full path but you can select portions of it
    //  so the below is just pseudocode

    return !excludeIconArray.includes(file.path)
});

  return gulp
    .src(src)

// put the next pipe wherever you want to exclude certain files
// either right after source or just before the svgo pipe

.pipe(svgFilter())