具体异常
启动或打包项目时终端报错
file:///D:/file_webProject/myBolg/imlaoxie-blog-mater/blog-admin/node_modules/.pnpm/vite-plugin-mock@3.0.0_esbuild@0.18.11_mockjs@1.1.0_vite@4.4.0/node_modules/vite-plugin-mock/dist/index.mjs:128
if (!require.cache) {
^
ReferenceError: require is not defined
at cleanRequireCache (file:///D:/file_webProject/myBolg/imlaoxie-blog-mater/blog-admin/node_modules/.pnpm/vite-plugin-mock@3.0.0_esbuild@0.18.11_mockjs@1.1.0_vite@4.4.0/node_modules/vite-plugin-mock/dist/index.mjs:128:3)
at getMockConfig (file:///D:/file_webProject/myBolg/imlaoxie-blog-mater/blog-admin/node_modules/.pnpm/vite-plugin-mock@3.0.0_esbuild@0.18.11_mockjs@1.1.0_vite@4.4.0/node_modules/vite-plugin-mock/dist/index.mjs:157:3)
at createMockServer (file:///D:/file_webProject/myBolg/imlaoxie-blog-mater/blog-admin/node_modules/.pnpm/vite-plugin-mock@3.0.0_esbuild@0.18.11_mockjs@1.1.0_vite@4.4.0/node_modules/vite-plugin-mock/dist/index.mjs:52:20)
at configResolved (file:///D:/file_webProject/myBolg/imlaoxie-blog-mater/blog-admin/node_modules/.pnpm/vite-plugin-mock@3.0.0_esbuild@0.18.11_mockjs@1.1.0_vite@4.4.0/node_modules/vite-plugin-mock/dist/index.mjs:246:16)
at file:///D:/file_webProject/myBolg/imlaoxie-blog-mater/blog-admin/node_modules/.pnpm/vite@4.4.0_@types+node@20.4.0_sass@1.63.6_terser@5.18.2/node_modules/vite/dist/node/chunks/dep-1d3a4915.js:65799:28
问题点定位
插件模块中的代码与vite基础环境不兼容异常报错
node_modules/vite-plugin-mock/dist/index.mjs
基础环境介绍
| 名称 | 版本 | 安装 | 说明 |
|---|---|---|---|
| win10 | 专业版22H2 | --- | --- |
| nvm | @1.1.11 | 自行安装,待补充 | node版本管理 |
| node | @18.16.0 | nvm install 18 | ---主力 |
| npm | @9.5.1 | npm install -g npm | --- |
| yarn | @1.22.19 | npm install -g yarn | --- |
| pnpm | @8.6.6 | npm install -g pnpm | ---主力包管理 |
| vite | @4.4.0 | pnpm i -D vite@4.4.0 | --- |
| typescript | @5.0.2 | pnpm i D typescript@5.0.2 | --- |
| vue | @3.3.4 | pnpm i vue@3.3.4 | --- |
| mockjs | @1.1.0 | pnpm i -D mockjs@1.1.0 | --- |
| vite-plugin-mock | @3.3.0 | pnpm i -D vite-plugin-mock@3.3.0 | --- |
| 包名 | @版本 | pnpm i --- | 待补充 |
解决办法
在报错文件头部加入两行代码
// 解决报错问题
import { createRequire } from 'module';
const require = createRequire(import.meta.url);