external-svg-sprite-loader icon indicating copy to clipboard operation
external-svg-sprite-loader copied to clipboard

Excluding </view>

Open timbomckay opened this issue 7 years ago • 11 comments
trafficstars

Is there a way to exclude the view tags from being built? We're not really using it and would like to save the space if possible. Thanks

timbomckay avatar Oct 11 '18 20:10 timbomckay

@timbomckay this should be possible. I'll try to have a look into it when the problem in https://github.com/karify/external-svg-sprite-loader/pull/54 is resolved.

Remind me about this if I don't come back to you :)

bensampaio avatar Oct 22 '18 13:10 bensampaio

Thanks @bensampaio. If it's already a feature just let me know how to pass that option. Haven't seen it in the documentation.

timbomckay avatar Oct 22 '18 13:10 timbomckay

Just to make sure: the <view /> elements are necessary if you use the sprite icons in CSS. Are you not using them in CSS?

bensampaio avatar Oct 24 '18 09:10 bensampaio

Correct we're not using the CSS feature. It's nice to have and we can opt into it if we ever decide to but it's unnecessary space for right now.

Version: "external-svg-sprite-loader": "3.4.1",

Settings:

rules: [
  {
    test: /\.js$/,
    use: { loader: 'babel-loader' },
    exclude: /node_modules/
  },
  {
    test: /collection-1\\[a-zA-Z0-9_-]*.svg$/,
    loader: 'external-svg-sprite-loader',
    options: {
      name: 'collection-1.svg',
      iconName: '[name]'
    }
  },
  {
    test: /collection-2\\[a-zA-Z0-9_-]*.svg$/,
    loader: 'external-svg-sprite-loader',
    options: {
      name: 'collection-2.svg',
      iconName: '[name]'
    }
  },
  {
    test: /collection-3\\[a-zA-Z0-9_-]*.svg$/,
    loader: 'external-svg-sprite-loader',
    options: {
      name: 'collection-3.svg',
      iconName: '[name]'
    }
  }
]

Thanks

timbomckay avatar Oct 24 '18 13:10 timbomckay

Ok, I get it. The problem is: the main reason that lead me to create this loader and plugin was because there was no other that supported CSS. So this request is a bit unexpected 😛 Anyway, it could be done but I'll need to give it some thought. Most probably I would add this in a minor version of v4, so first I'll focus on releasing v4.

bensampaio avatar Oct 24 '18 13:10 bensampaio

Ok. Yeah we just use it as <svg><use href="external.svg#icon" /></svg>. Didn't know if there was a way to just pass a rule like

options: {
  name: 'collection-1.svg',
  iconName: '[name]',
  view: false
}

Thanks for creating the loader, it's been a big help.

timbomckay avatar Oct 24 '18 14:10 timbomckay

Currently there is no such option. Maybe one option would be using SVGO to remove the views but for now you would need to do this yourself.

bensampaio avatar Oct 24 '18 14:10 bensampaio

Ok. But you were saying you're gonna implement that option for a 4.x release?

timbomckay avatar Oct 24 '18 15:10 timbomckay

I will look into it since I'm not sure if this is possible.

bensampaio avatar Oct 24 '18 15:10 bensampaio

Hi @bensampaio, when do you think you'll have some feedback on this?

timbomckay avatar Nov 06 '18 15:11 timbomckay

Not soon, sorry. I have several other things to focus on at work. If you have an idea on how to implement this let me know what you have in mind. I'll try to come back to this in December.

bensampaio avatar Nov 06 '18 15:11 bensampaio