gpt4 book ai didi

javascript - Vite/Vue 3 : "require is not defined" when using image source as props

转载 作者:行者123 更新时间:2023-12-05 00:25:39 26 4
gpt4 key购买 nike

我从 Vue CLI 切换到 Vite CLI ,以及从 Vue 3 的 Composition API 到 SFC Script setup API。
它以前如何为我工作
当我使用官方的 Vue CLI 时,我可以通过 props 传递路径的文件名来导入图像源:

<template>
<img :src="require(`@/assets/${imagePath}`)"/>
<template/>

<script>
export default {
props: {
imagePath: { type: String },
},
setup() {
// ...
}
}
<script/>
然后这样调用它:
<template>
<Image imagePath="icon.png" />
</template>
迁移到 Vite 后遇到的错误
但是由于我迁移到 Vite CLI,我有一个错误“Uncaught ReferenceError: require is not defined”。我的文件现在使用脚本设置语法,如下所示:
<script setup>
const props = defineProps({
imagePath: { type: String },
})
</script>

<template>
<img :src="require(`@/assets/${props.imagePath}`)"/>
</template>
require is not define error
我试过的
我已经尝试使用相对路径直接从 Assets 文件夹导入文件,并且它有效。但是我无法使用 import 语句指定 props 的路径。
<script setup>
// Works but do not use the props, so the component is not reusable
import logo from "./../assets/logo.png"
</script>

<template>
<img :src="logo"/>
</template>
<script setup>
// Component is reusable but the import statement has illegal argument I guess
const props = defineProps({
imagePath: { type: String },
})

import logo from `./../assets/${props.imagePath}`
</script>

<template>
<img :src="logo"/>
</template>
我还尝试了模板中的 import 语句,但它甚至无法编译代码:
<script setup>
const props = defineProps({
imagePath: { type: String },
})
</script>

<template>
<img :src="import `./../assets/${props.iconPath}`" />
</template>
我错过了什么吗?也许一个插件存在并且可以帮助我实现这一点?

最佳答案

我也遇到了这个问题。我搜索了一下,根据这个找到了github issue comment ,

There should never be require in source code when using Vite. It'sESM only.


更多信息请访问 Features | Vite - Static Assets
经过一番搜索,我找到了这个 Vue 3 代码示例 link对我有用
<CarouselItem v-for="(item,index) of carouselData" :key="index">
<img :src="getImageUrl(item.img_name)" />
</CarouselItem>
setup() {
const getImageUrl = (name) => {
return new URL(`../../lib/Carousel/assets/${name}`, import.meta.url).href
}
return { carouselData, getImageUrl }
}

关于javascript - Vite/Vue 3 : "require is not defined" when using image source as props,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69696677/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com