vite-plugin-mock3.0.0版本运行报错

2,027 阅读1分钟

安装vite-plugin-mock3.00版本时报错

  • 报错如下

image.png

  • 错误信息为
file:///D:/Code/thingsboard/thingsboard/ui-vue3/node_modules/vite-plugin-mock/dist/index.mjs:128
  if (!require.cache) {
  ^

ReferenceError: require is not defined
    at cleanRequireCache (file:///D:/Code/thingsboard/thingsboard/ui-vue3/node_modules/vite-plugin-mock/dist/index.mjs:128:3)
    at getMockConfig (file:///D:/Code/thingsboard/thingsboard/ui-vue3/node_modules/vite-plugin-mock/dist/index.mjs:157:3)
    at createMockServer (file:///D:/Code/thingsboard/thingsboard/ui-vue3/node_modules/vite-plugin-mock/dist/index.mjs:52:20)
    at configResolved (file:///D:/Code/thingsboard/thingsboard/ui-vue3/node_modules/vite-plugin-mock/dist/index.mjs:246:16)
    at file:///D:/Code/thingsboard/thingsboard/ui-vue3/node_modules/vite/dist/node/chunks/dep-e8f070e8.js:64256:28
    at Array.map (<anonymous>)
    at resolveConfig (file:///D:/Code/thingsboard/thingsboard/ui-vue3/node_modules/vite/dist/node/chunks/dep-e8f070e8.js:64256:14)
    at async _createServer (file:///D:/Code/thingsboard/thingsboard/ui-vue3/node_modules/vite/dist/node/chunks/dep-e8f070e8.js:63274:20)
    at async CAC.<anonymous> (file:///D:/Code/thingsboard/thingsboard/ui-vue3/node_modules/vite/dist/node/cli.js:733:24)
error Command failed with exit code 1.
  • 根据报错信息找到源文件

image.png

  • 可以发现,在mjs中,使用了require,mjs是遵循的是ESModule规范,并没有require

  • 解决方案如下

  1. 在cleanRequireCache函数内,加一句条件,如果不存在require则直接return,如下所示

image.png

  1. 可以发现报错解决了

这种修改方式是一次性的,也就是只要你运行yarn 再安装一次包,这个修改就被破坏了

  • 我们可以在修改后,在node_modules目录的vite-plugin-mock文件夹中执行yarn link
  • 然后在我们自己的项目中执行yarn link "vite-plugin-mock,这样就会在执行yarn安装包时,优先使用我们本地修改后的包,而不需要每次yarn时重新修改