vite项目require语法兼容问题解决 require is not defined
vue 2023-05-25 16:53:12

vite项目不支持require语法问题解决 require is not defined

Vite默认使用es6标准的 import 的导入方式,不支持require引入。默认有Vite自己的引入方式 https://vitejs.cn/guide/assets.html

但在在日常使用Vue3+Ts+Vite构建项目中,部分比较旧的三方插件中默认使用的是require引入(webpack构建可以使用),会出现require方法报错的兼容性问题 require is not defined 。
 
1. require和import导入区别
 
  年份 出处 使用
require/exports 2009 CommonJS const lodash = require('lodash');
import/export 2015 ECMAScript2015(ES6) import lodash from 'lodash';

 

2. 解决方法 

Vite 仓库社区生态 https://github.com/vitejs/awesome-vite 中有一个

插件 vite-plugin-require-transform。 插件自动转换import xxx from ''; 方法 引入

 

安装

JavaScript Code复制内容到剪贴板
  1. yarn add -D vite-plugin-require-transform  

或者

JavaScript Code复制内容到剪贴板
  1. npm i vite-plugin-require-transform --save-dev  

 

使用:

JavaScript Code复制内容到剪贴板
  1. // vite.config.ts配置  
  2.   
  3. import requireTransform from 'vite-plugin-require-transform';  
  4.   
  5.   plugins: [  
  6.     // ...  
  7.     requireTransform({  
  8.       fileRegex:/.ts$|.tsx$|.vue$/  
  9.     //   fileRegex:/.js$|.jsx$|.vue$/  
  10.     }),  
  11.   ]  

 

 

 

 

本文来自于:http://www.yoyo88.cn/study/vue/670.html

Powered by yoyo苏ICP备15045725号