在 NuxtJS 中内联使用 SVG 的最佳包是什么?

What is the best package to use SVG inline in NuxtJS?

我找到了在 NuxtJS 中使用 SVG 内联的最佳包,可以渲染 HTML。我使用这个包:svg-inline-loader. It's display SVG HTML but it must have insert all SVG in document to use: View this example。它必须插入 <svg v-html="require('~/assets/sprite.svg')"></svg> 才能呈现 SVG。

你们知道什么包更适合内联 SVG 吗?

是的,使用 vue-svg-loader

使用 npmyarn 安装它:

npm install --save-dev vue-svg-loader
yarn add --dev vue-svg-loader

然后配置你的 webpack 配置:

{
  test: /\.svg$/,
  loader: 'vue-svg-loader'
}

编辑: 或使用 vue-cli-3.*(在您的 vue.config.js 中):

chainWebpack: config => {
  const svgRule = config.module.rule('svg')

  svgRule.uses.clear()
  svgRule
    .use('vue-svg-loader')
    .loader('vue-svg-loader')
    .options({
      svgo: false
    })
}

最后是您的 .vue 文件中的用法示例:

<template>
  <nav id="menu">
    <a href="...">
      <SomeIcon class="icon" />
      Some page
    </a>
  </nav>
</template>

<script>
import SomeIcon from './assets/some-icon.svg'

export default {
  name: 'menu',
  components: { SomeIcon }
}
</script>

查看更多:docs.