如何将npm软件包的静态资产发送到nuxt应用程序?

杰西·雷扎·霍拉萨尼(Jesse Reza Khorasanee)

我正在尝试将资产从npm包发送到nuxt应用程序。有人成功做到了吗?

我有一个vue组件作为具有结构的npm软件包:

-src/
 -assets/
  -noun-filter.svg

将此矢量图像加载到此npm包中的vue组件的模板中,如下所示:

<img class="filter-icon" :src="require('../assets/noun-filter.svg')"/>

上面的方法可以很好地用于单独测试此程序包。

但是,当我像这样在nuxt应用程序中导入npm软件包时:

<script>
export default {
  name: "NuxtMainPage",
  components: {
    NpmImportedComponent: process.client
      ? () => import("@myname/mynpmpackage").then(m => m.Content)
      : null
  },
//...
}
</script>

当我运行该应用程序时,我将得到404的svg。

Nuxt在http://localhost:3000/_nuxt/img/noun-filter.b16c5666.svg不存在的文件中查找文件

我在这里想念什么吗?为什么nuxt会改变资产的路径?为什么不仅仅像我们期望的那样查看节点模块?

一个人如何通过npm软件包将静态资产发送到nuxt?

我尝试过的

  • 尝试在我的应用中使用url-loader。网址仍在nuxt中被重定向
  • import @myname/mypackage/src/assets/noun-filter.svg在nuxt应用中导入项目
  • 将npm软件包中的相对URL从../assets切换到@assets
  • 将资产文件夹移动到npm软件包的根目录,并将其添加到package.json中包含的文件中

上面所有内容在nuxt查找图像时都具有相同的结果: http://localhost:3000/_nuxt/img/noun-filter.b16c5666.svg

杰西·雷扎·霍拉萨尼(Jesse Reza Khorasanee)

对于那些发现此问题却没有其他答案的人,请使用vue-svg-inline-loader

在您的组件模板中

<img svg-inline src="'@/../assets/noun-filter.svg'"/>

vue.config.js中

//...
      config.module
        .rule('vue')
        .use("vue-svg-inline-loader")
        .loader("vue-svg-inline-loader") 
//...   

非常轻松,对我来说效果很好。它的缺点是您的svg最终会与您的软件包捆绑在一起,但是url-loaders会做同样的事情

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Web应用程序如何将推送通知发送到iOS设备?

如何将python列表发送到C ++应用程序等待输入?

如何将应用程序名称发送到身份服务器 4

如何将 URL 发送到 OneNote Android 应用程序?

如何将事件发送到PCF中的应用程序的所有实例

如何将位图发送到WhatsApp应用程序

如何将推送通知发送到Web应用程序和浏览器?

如何将数据从Firebase发送到Android / iOS应用程序和Python

如何将数据从通知发送到应用程序

如何将数据窗口表单应用程序发送到网站

如何将键盘事件发送到Windows中的所有类型的应用程序?

如何将Firebase消息发送到项目中的特定应用程序?

如何将推送通知发送到安装在mdm上的iOS应用程序?

如何将日志发送到 iOS 应用程序中的 Lambda 函数?

如何将数据从Xamarin.Forms应用程序发送到Web API

如何将Flask应用程序发送到AWS Elastic Beanstalk?

如何将OTP从服务器发送到我的android应用程序?

如何将通知从库发送到应用程序

如何将数据从 Meteor 应用程序发送到嵌入式小部件?

如何将应用程序拆分为多个软件包?

如何将laravel软件包集成到应用程序中

如何将演示应用程序目标添加到Swift软件包?

发布应用程序后如何将数据发送到客户端应用程序

iOS-WatchKit如何将消息/数据从iPhone应用程序发送到WatchKit应用程序?

如何将消息从用 Node.js 编写的本机应用程序发送到 Chrome 扩展程序?

如何将文本文件(或字符串发送到QML中的textArea)从python发送到QML应用程序?

AutoHotkey-如何将组合与AltGr映射以将组合Ctrl + key发送到特定的应用程序?

如何将数据从 Web 服务器发送到另一个应用程序

如何将Windows Phone 8应用程序数据发送到服务器