vue3 vite组件库中如何正确引用静态资源

阅读数:159 评论数:0

跳转到新版页面

分类

html/css/js

正文

方法一、使用new URL

在 Vite 中,你可以使用 new URL 的方式来引用静态资源,这样 Vite 会处理资源的路径,并且在构建时会将资源复制到输出目录:

<script setup>
const imageUrl = new URL('./assets/image.png', import.meta.url).href;
</script>

<template>
  <img :src="imageUrl" alt="Description" />
</template>

这种方式的好处是 Vite 会自动优化图片资源,例如,将图片转换为 ESM 模块,或者在构建时进行哈希处理。

方法二、使用静态导入

<script setup>
import imageUrl from './assets/image.png';
</script>

<template>
  <img :src="imageUrl" alt="Description" />
</template>

在这种情况下,Vite 会将图片作为一个模块来处理,并且在构建时将其复制到输出目录。

最后确保vite.config.js 文件中正确配置了资源处理,这样在构建组件库时,资源可以被正确地处理和引用:

// vite.config.js
import { defineConfig } from 'vite';
import vue from '@vitejs/plugin-vue';

export default defineConfig({
  plugins: [vue()],
  build: {
    lib: {
      entry: 'path/to/your/entry.js',
      name: 'YourLibraryName',
    },
    rollupOptions: {
      // 确保静态资源被正确处理
      output: {
        assetFileNames: 'assets/[name]-[hash][extname]',
      },
    },
  },
});



相关推荐

一、使用pnpm新建项目 可以使用npm 或yarn或pnpm来初始化Vite项目 pnpm create vite xxx(项目名称) #选择vue #选择js cd xxx (进入项目目录) #安

一、build视图分析依赖文件 分析项目中的文件大小及引用情用情况,是优化前的重要一步,从而采取文件分包、cdn引入等相关技术。 Rollup Plugin Visualizer是一个依赖分析插件,它

一、生命周期 1、vue2生命周期 beforeCreate #实例初始化之后,进行数据侦听和事件/侦听器的配置之前同步调用 created #实例创建完成后被立即同步调用 beforeMount #

一、概述 都是现代化打包工具 二、对比 1、底层语言 从底层原理上来说,Vite是基于esbuild预构建依赖。而esbuild是采用go语言编写,因为go语言的操作是纳秒级别,而js是以毫秒计数,所

一、概述 <script setup> 是在单文件组件(SFC)中使用组合式API的编译时语法糖,解决Vue3.0中setup需要频繁将声明的变量、函数以及import引入的内容通过return向外

一、概述 在vue2中,data函数里返回的值直接为响应式,但在vue3中我们需要使用一些函数才能达到这个效果。 setup函数中拿不到vue的this。 二、常用函数 <template> <d

<script> export default { setup() { const func1= () => { console.log("func1");

缓存页面主要Jul为了防止重复渲染dom,减少加载时间及性能消耗,提高用户体验。 一、旧版的语法 <keep-alive> <router-view v-if="$route.meta.kee

一、在main.js挂载 import { createApp } from 'vue' import App from './App.vue' import router from './route

一、概述 在vue3中没有$refs这个对象,可以使用如下方法 <template> <div><input type="text" ref="txt1" value="hello" /></div>