首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Vitest - ReferenceError:文件未定义

Vitest - ReferenceError:文件未定义
EN

Stack Overflow用户
提问于 2022-10-15 01:59:58
回答 1查看 243关注 0票数 0

我通常可以在代码中的任何地方使用File,但由于某种原因,当我最激烈地使用它时,它会抛出这个错误。为什么会发生这种情况,我如何解决这个错误?

这是我的vite.config.ts

代码语言:javascript
复制
/// <reference types="vitest" />
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'

// Configure Vitest (https://vitest.dev/config/)
export default defineConfig({
  test: {
    /* for example, use global to avoid globals imports (describe, test, expect): */
    // globals: true,
  },
  plugins: [vue()],
})

这是我的测试文件代码。

代码语言:javascript
复制
import { assert, expect, test } from 'vitest'

test('File', () => {
  let applicationZip = new File(new Array<Blob>(), "Mock.zip", { type: 'application/zip' })
})

每当我运行最激烈的时候,它都会抛出以下错误。

代码语言:javascript
复制
ReferenceError: File is not defined
 ❯ test/basic.test.ts:25:23
     23| 
     24| test('File', () => {
     25|   let applicationZip = new File(new Array<Blob>(), "Mock.zip", { type: 'application/zip' })
       |                       ^
     26| })
     27| 
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-10-15 05:39:59

我通过here发现,File不是在nodejs中,而是由浏览器的DOM提供的,因此解释了最致命的错误,因为它是纯节点。通过更深入地阅读vitest的文档,我了解到可以使用像jsdom这样的环境来配置vitest,它将提供我在测试中需要的File对象。在使用以下环境设置修改我的vite.config.ts之后,该错误将不再出现。

代码语言:javascript
复制
/// <reference types="vitest" />
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'

export default defineConfig({
  plugins: [vue()],
  test: {
    globals: true,
    environment: "jsdom",
  },
  root: ".",
})
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74076180

复制
相关文章

相似问题

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