javascript - 使用来自 node_modules 的 SVG

标签 javascript node.js vue.js svg quasar-framework

我创建了一个包含所有 svg 文件的 node_module 来模块化我们的架构。

当我调用它时它工作正常:

<q-icon>
  <svg>
    <use xlink:href="~svgmodule/svgs/icons.svg#addicon"></use>
  </svg>
</q-icon>

但是当这样做时:

<q-icon>
  <svg>
    <use :xlink:href="'~svgmodule/svgs/icons.svg#' + iconParameter"></use>
  </svg>
</q-icon>

iconParameter定义如下:

iconParameter: 'addicon'

这是我遇到的错误:

vue.runtime.esm.js?0594:6757 GET http://localhost:8080/~svgmodule/svgs/icons.svg net::ERR_ABORTED 404 (Not Found)

我也试过了,效果不错:

<use xlink:href="../../../../../../../../node_modules/svgmodule/svgs/icons.svg#addicon"></use>

但这个不是:

<use :xlink:href="'../../../../../../../../node_modules/svgmodule/svgs/icons.svg#' + iconParameter"></use>

也不是

<use :xlink:href="'../../../../../../../../node_modules/svgmodule/svgs/icons.svg#addicon'"></use>

求助!!

最佳答案

vue-loader 不会将表达式转换为 webpack 模块请求。

您必须手动调用requireThis is what vue-loader does internally .

<q-icon>
  <svg>
    <use :xlink:href="require('~svgmodule/svgs/icons.svg') + '#' + iconParameter"></use>
  </svg>
</q-icon>

关于javascript - 使用来自 node_modules 的 SVG,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62081876/

相关文章:

Javascript将函数返回的数组分配给另一个包含所有元素的数组

node.js - 如何使用 Node.js 在 Sequelize 6 中实现实例方法

node.js - 谷歌云流语音转文本?

javascript - 是否可以将组件作为 Prop 传递并在 Vue 的子组件中使用它?

javascript - 在对 Angular 线段中获取点的算法

javascript - 使用 TimelineJS 和 AMD

javascript - 参数用于过滤数组的属性

mysql - sequelize 在数据库(MySql)中发布 NULL

javascript - 为对象 VueJs 中的每个数组项创建 <li> 列表

vue.js - Vue-i18n 更改区域设置不更新所有内容