升级vite5注意事项

  1. Uncaught TypeError: (intermediate value).globEager is not a function

vite5中import.meta.globEager已经被废弃,改成使用import.meta.glob('*', { eager: true })

// 以前的使用方法
const routesModules = import.meta.globEager('../views/**/router/*.js');
// 现在的使用方法
const routesModules = import.meta.glob('../views/**/router/*.js', { eager: true });

2.  The CJS build of Vite's Node API is deprecated.

See https://vitejs.dev/guide/troubleshooting.html#vite-cjs-node-api-deprecated for more details.

废弃用 CJS 节点 API

Vite 的 CJS Node API 已弃用。调用时require('vite'),现在会记录弃用警告。您应该更新您的文件或框架以导入 Vite 的 ESM 版本。

在一个基础的Vite项目中,需要保证:

  1. 文件vite.config.js内容使用ESM语法。
  2. 最接近的package.json文件具有"type": "module",或使用.mjs扩展名,例如vite.config.mjs

对于其他项目,有一些通用方法:

  • 将 ESM 配置为默认值,如果需要,选择加入 CJS: 添加"type": "module"到项目中package.json。所有*.js文件现在都解释为 ESM,并且需要使用 ESM 语法。您可以使用扩展名重命名文件.cjs来继续使用 CJS。
  • 将 CJS 保留为默认值,如果需要,选择加入 ESM: 如果项目package.json没有"type": "module",则所有*.js文件都将解释为 CJS。您可以使用扩展名重命名文件.mjs以改用 ESM。
  • 动态导入Vite: 如果需要继续使用CJS,改为import('vite')可以使用动态导入Vite。这要求你的代码是在async上下文中编写的,但仍然应该易于管理,因为Vite的API大部分是异步的。
  • 在package.json中添加type:modle
 "type": "module",
  • 修改vite.config.jsvite.config.mjs

你可能感兴趣的:(前端,javascript,vue)