關(guān)于Vite不能使用require問題的解決方法
咱們在vue2中是不存在require is not defined問題的,那是因為webpack幫我們解決了,開發(fā)時在內(nèi)部對其了轉(zhuǎn)換
為什么非要使用require語法?因為require語法有時候確實蠻好用的啊,咱們在vue2中可以通過require語法,定義變量,動態(tài)獲取一些靜態(tài)資源
vite卻不能使用,確實有點(diǎn)點(diǎn)的難受,最近剛發(fā)現(xiàn)了一種開發(fā)時依賴插件vite-plugin-require-transform,那就試一下吧
vitejs/ awesome-vite - github地址: https://github.com/vitejs/awesome-vite
進(jìn)去之后咱們搜索 require,然后選擇第三個

帶你進(jìn)去之后即 vit-plugin-require-transform
然后安裝
yarn add -D vite-plugin-require-transform or npm i vite-plugin-require-transform --save-dev
然后vite.config.js中配置
import { defineConfig } from 'vite'
import requireTransform from 'vite-plugin-require-transform';
export default defineConfig({
plugins: [
requireTransform({
fileRegex: /.js$|.vue$/
}),
],
});這樣就可以了
然后就去抓緊抓緊試一下
第一:
<img class="img" :src="require('@/assets/login/login-bg.jpg')" alt="">這樣是可以的,也不會報錯了,正常使用require
第二:
<img class="img" :src="require(`@/assets/login/login-bg.jpg`)" alt="">
這種就不行!報錯,和第一種的區(qū)別就是把普通字符串改成了模板字符串(``)反引號,這種是不行的,有點(diǎn)坑
第三:
<template>
<div class="img">
<img class="img" :src="img1" alt="">
</div>
</template>
<script setup>
const img1 = require('@/assets/login/login-bg.jpg')
</script>這種也不行 !報錯!

又是一個坑
第四:
<template>
<div class="img">
<img class="img" :src="img2" alt="">
</div>
</template>
<script setup>
const img1 = require('@/assets/login/login-bg.jpg')
let img2 = img1
</script>
<style scoped>
.img {
width: 100%;
height: 100%;
}
</style>這樣竟然可以!完全不報錯!
第五(使用變量):
<template>
<div class="img">
<img class="img" :src="img2" alt="">
</div>
</template>
<script setup>
let a = 'login'
const img1 = require('@/assets/' + a +'/login-bg.jpg')
let img2 = img1
</script>
<style scoped>
.img {
width: 100%;
height: 100%;
}
</style>剛才使用``模板字符串的都不行,變量更不用寫了,這次換個寫法,同樣也是不行
唉,有點(diǎn)失望,,,,真不知道出這個插件的意義在哪,這也不實用啊,跟webpack那個require差的有點(diǎn)兒遠(yuǎn)啊,這個插件就是將代碼從 require 語法轉(zhuǎn)換為 import ,但是我發(fā)現(xiàn)還不如import好用的,倒不如直接使用import了,都知道存在即合理,哈哈哈哈,就僅僅只為了解決require is not defined而出現(xiàn)嗎
還是我太菜了嗎。。。但是使用vue-cli3 + vue2的時候確實不存在上面的問題
總結(jié)
到此這篇關(guān)于Vite不能使用require問題的文章就介紹到這了,更多相關(guān)Vite不能使用require內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue +elementui 導(dǎo)入CSV文件的方式
封裝一個公共js方法,使用papaparse解析CSV文件且返回數(shù)組格式,下面通過示例代碼介紹vue +elementui 導(dǎo)入CSV文件的方式,感興趣的朋友一起看看吧2024-04-04
如何巧用Vue.extend繼承組件實現(xiàn)el-table雙擊可編輯(不使用v-if、v-else)
這篇文章主要給大家介紹了關(guān)于如何巧用Vue.extend繼承組件實現(xiàn)el-table雙擊可編輯的相關(guān)資料,不使用v-if、v-else,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-06-06
Vue3+TS+Vant3+Pinia(H5端)配置教程詳解
這篇文章主要介紹了Vue3+TS+Vant3+Pinia(H5端)配置教程詳解,需要的朋友可以參考下2023-01-01
關(guān)于element-ui的隱藏組件el-scrollbar的使用
這篇文章主要介紹了關(guān)于element-ui的隱藏組件el-scrollbar的使用,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-05-05
Vue前端數(shù)值轉(zhuǎn)換為千分位格式并保留兩位小數(shù)代碼示例
在Vue.js開發(fā)中我們經(jīng)常會遇到需要將數(shù)字格式化為保留兩位小數(shù)的情況,下面這篇文章主要給大家介紹了關(guān)于Vue前端數(shù)值轉(zhuǎn)換為千分位格式并保留兩位小數(shù)的相關(guān)資料,需要的朋友可以參考下2024-06-06
vue 導(dǎo)航錨點(diǎn)_點(diǎn)擊平滑滾動,導(dǎo)航欄對應(yīng)變化詳解
這篇文章主要介紹了vue 導(dǎo)航錨點(diǎn)_點(diǎn)擊平滑滾動,導(dǎo)航欄對應(yīng)變化詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-08-08
Vue中使用vue2-perfect-scrollbar制作滾動條
這篇文章主要介紹了Vue中使用vue2-perfect-scrollbar滾動條,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-06-06

