Vue-next-admin怎么跑不起来

前言

个人打算开发(重写重构)一个项目,前后端分离重写,所以打算先把前端写了吧。

看到一个项目不错:Vue-next-admin 看看能不能节省点时间,直接小修一下了。

运行Vue-next-admin遇到的错误,(m(ark)d(own) 怎么跑不起来!)。

Error:   Failed to scan for dependencies from entries:
  /var/local/myVue/vue-next-admin/index.html

  ✘ [ERROR] No known conditions for "./lib/locale/lang/en" specifier in "element-plus" package [plugin vite:dep-scan]

    src/i18n/index.ts:5:21:
      5 │ import enLocale from "element-plus/lib/locale/lang/en";
        ╵                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  This error came from the "onResolve" callback registered here:

    node_modules/.store/esbuild@0.18.20/node_modules/esbuild/lib/main.js:1292:20:
      1292 │       let promise = setup({

Debug历程:

询问ChatGPT给出的回答

其一:

从你提供的代码片段来看,这是用于引入 Element-Plus UI 库的多语言支持的部分代码。如果你在 Vue 项目中引用这些代码导致错误,有几个常见问题可能会导致此问题:

  1. Element-Plus 未安装或配置错误: 确保你已经正确安装了 Element-Plus 库,并且在 Vue 项目中进行了正确的配置。你可以使用类似 npm install element-plus --save 的命令来安装 Element-Plus,并确保你在 Vue 项目中进行了正确的初始化和配置。
  2. 语言包路径不正确: 如果你在项目中使用的 Element-Plus 版本或目录结构不同于你引用的代码中的路径,那么你需要根据实际情况来更新导入路径。确保路径与你的项目结构相匹配。
  3. 缺少相关依赖: Element-Plus 可能需要一些特定的依赖项来支持多语言功能。确保你已经按照 Element-Plus 的文档要求安装了任何必要的依赖项。
  4. Vue.js 版本问题: 确保你的 Vue.js 版本与 Element-Plus 兼容。不同的 Vue.js 版本可能需要不同的配置和用法。

如果你能提供更详细的错误信息或代码上下文,那将有助于更准确地诊断和解决问题。请检查以上问题并根据实际情况进行调整。如果问题仍然存在,可以提供更多信息以便我能够提供更具体的帮助。

其二:

这个错误提示表明 Vite(Vue 的构建工具)无法找到 element-plus 包中的 ./lib/locale/lang/en 模块的相关条件。

这可能是由于某些原因导致 Vite 无法正确解析 Element-Plus 包的多语言模块路径。以下是一些可能的解决方案:

  1. 检查 Element-Plus 版本: 确保你正在使用的 Element-Plus 版本与你的项目兼容。不同版本的 Element-Plus 可能会有不同的模块结构和导入方式。你可以尝试升级 Element-Plus 到最新版本,或者查看 Element-Plus 文档以了解与你的 Vue 和 Vite 版本兼容的 Element-Plus 版本。

  2. 检查配置文件: 如果你有自定义的 Vite 配置文件(如 vite.config.js),确保你在其中正确配置了 Element-Plus 的导入。你可以尝试在配置文件中添加 Element-Plus 的别名或路径映射。

    // vite.config.js
    import path from 'path';
    
    export default {
      // ...其他配置...
      resolve: {
        alias: {
          'element-plus': path.resolve(__dirname, 'node_modules/element-plus')
        }
      }
    }
  3. 清除缓存: 有时候 Vite 的缓存可能会导致问题。尝试删除 Vite 缓存并重新构建项目。

  4. 检查依赖项: 确保你的项目依赖项没有冲突或不兼容的包。可以尝试删除 node_modules 目录和 package-lock.json(或 yarn.lock),然后重新安装依赖项。

  5. 查看错误详细信息: 请确保查看详细的错误信息,以确定是否有更多有关问题的上下文或特定错误消息。这有助于更精确地诊断问题。

如果以上方法都无法解决问题,建议查看 Vite 和 Element-Plus 的 GitHub 存储库,以查看是否有其他人报告了类似的问题,或者提交一个新的问题以获得帮助。此外,你还可以尝试在 Vite 中使用其他 Vue UI 库或组件库,以查看是否会出现相同的问题,以确定是否与 Element-Plus 有关。

根据GPT回答修改别名之后报错成了这样:

EISDIR: illegal operation on a directory, read node_modules/element-plus

感觉更不对劲了。

BUG解决:

还是看看CSDN的佬们咋解决的

来自suoh’s Blog的一篇文章

主要是element-plus默认为英文,在设置中文的时候报了错

img

将上面main.ts的红框代码改为如下方式即可

import locale from "element-plus/es/locale/lang/zh-cn";