首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Vue3升级-错误:[plugin: vite:dep-scan]无法读取未定义的属性(读取“长度”)

Vue3升级-错误:[plugin: vite:dep-scan]无法读取未定义的属性(读取“长度”)
EN

Stack Overflow用户
提问于 2022-06-08 11:36:05
回答 1查看 2.7K关注 0票数 0

我在一个vue2项目中成功地从webpack迁移到vite,现在我正在从vue2升级到vue3。

直到本指南中的第4步:https://v3-migration.vuejs.org/migration-build.html#installation,现在构建过程给了我这个错误。

ERROR: [plugin: vite:dep-scan] Cannot read properties of undefined (reading 'length')

看来vite compat构建器无法找到文件/src/main.js,因为如果我重命名甚至删除该文件,错误将保持不变。

我错过了什么吗?

代码语言:javascript
运行
复制
✘ [ERROR] [plugin vite:dep-scan] Cannot read properties of undefined (reading 'length')

    node_modules/vite/dist/node/chunks/dep-59dc6e00.js:60384:34:
      60384 │     if (importee.length < pattern.length) {
            ╵                                   ^

    at matches (/home/user/projects/ipfs-search/dweb-search-frontend/node_modules/vite/dist/node/chunks/dep-59dc6e00.js:60384:35)
    at /home/user/projects/ipfs-search/dweb-search-frontend/node_modules/vite/dist/node/chunks/dep-59dc6e00.js:60443:58
    at Array.find (<anonymous>)
    at Context.resolveId (/home/user/projects/ipfs-search/dweb-search-frontend/node_modules/vite/dist/node/chunks/dep-59dc6e00.js:60443:42)
    at Object.resolveId (/home/user/projects/ipfs-search/dweb-search-frontend/node_modules/vite/dist/node/chunks/dep-59dc6e00.js:38837:55)
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
    at async resolve (/home/user/projects/ipfs-search/dweb-search-frontend/node_modules/vite/dist/node/chunks/dep-59dc6e00.js:39049:26)
    at async /home/user/projects/ipfs-search/dweb-search-frontend/node_modules/vite/dist/node/chunks/dep-59dc6e00.js:39257:34
    at async callback (/home/user/projects/ipfs-search/dweb-search-frontend/node_modules/esbuild/lib/main.js:929:28)
    at async handleRequest (/home/user/projects/ipfs-search/dweb-search-frontend/node_modules/esbuild/lib/main.js:709:30)

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

    node_modules/vite/dist/node/chunks/dep-59dc6e00.js:39253:18:
      39253 │             build.onResolve({
            ╵                   ~~~~~~~~~

    at setup (/home/user/projects/ipfs-search/dweb-search-frontend/node_modules/vite/dist/node/chunks/dep-59dc6e00.js:39253:19)
    at handlePlugins (/home/user/projects/ipfs-search/dweb-search-frontend/node_modules/esbuild/lib/main.js:851:23)
    at Object.buildOrServe (/home/user/projects/ipfs-search/dweb-search-frontend/node_modules/esbuild/lib/main.js:1145:7)
    at /home/user/projects/ipfs-search/dweb-search-frontend/node_modules/esbuild/lib/main.js:2087:17
    at new Promise (<anonymous>)
    at Object.build (/home/user/projects/ipfs-search/dweb-search-frontend/node_modules/esbuild/lib/main.js:2086:14)
    at Object.build (/home/user/projects/ipfs-search/dweb-search-frontend/node_modules/esbuild/lib/main.js:1935:51)
    at /home/user/projects/ipfs-search/dweb-search-frontend/node_modules/vite/dist/node/chunks/dep-59dc6e00.js:38997:54
    at Array.map (<anonymous>)

  The plugin "vite:dep-scan" was triggered by this import

    html:/home/user/projects/ipfs-search/dweb-search-frontend/index.html:1:7:
      1 │ import "/src/main.js"
        ╵        ~~~~~~~~~~~~~~

Build failed with 1 error:
node_modules/vite/dist/node/chunks/dep-59dc6e00.js:60384:34: ERROR: [plugin: vite:dep-scan] Cannot read properties of undefined (reading 'length')

vite.config.js:

代码语言:javascript
运行
复制
import { defineConfig } from 'vite';
import path from 'path';
import createVuePlugin from '@vitejs/plugin-vue';

export default defineConfig({
  plugins: [
    createVuePlugin({
      template: {
        compilerOptions: {
          compatConfig: {
            MODE: 2,
          },
        },
      },
    }),
  ],
  server: {
    port: 8080,
  },
  resolve: {
    alias: [
      {
        vue: '@vue/compat',
      },
      {
        find: '@',
        replacement: path.resolve(__dirname, 'src'),
      },
    ],
  },
});
EN

回答 1

Stack Overflow用户

发布于 2022-06-08 12:36:48

我找到了答案,vite.config.js中的别名

代码语言:javascript
运行
复制
  {
    vue: '@vue/compat',
  },

似乎是造成错误的原因。

注意,这个片段是直接从官方的vue.js vue3迁移指南中复制的。在我删除它之后,错误消失了,更容易理解的错误出现了,就像我所期望的那样。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72545029

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档