vitest 使用问题

300 天前
 oppddd

安装依赖如下

// package.json

  "scripts": {
    "dev": "vite",
    "test": "vitest",
    "build": "vue-tsc && vite build",
    "preview": "vite preview",
    "eslint": "eslint --fix",
    "lint": "npx lint-staged",
    "stylelint": "npx stylelint --fix"
  },
  "dependencies": {
    "vue": "3.3.4"
  },
 "devDependencies": {
    "@types/jsdom": "21.1.1",
    "@vitejs/plugin-vue": "4.2.3",
    "@vue/test-utils": "^2.4.1",
    "eslint": "8.47.0",
    "happy-dom": "^10.10.4",
    "less": "4.2.0",
    "lint-staged": "^14.0.0",
    "vite": "4.4.9",
    "vitest": "0.34.1",
    "vue-tsc": "1.0.9"
  },

// vite.config.ts

/// <reference types="vitest" />
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'

// https://vitejs.dev/config/
export default defineConfig({
  plugins: [vue()],
  test: {
    globals: true,
    environment: 'happy-dom',
  },
})

启动之后,就会报错

Error: Cannot find package 'happy-dom' imported from /Users/liuxsen/codes/demos/liuxsen-stack/node_modules/.pnpm/local-pkg@0.4.3/node_modules/local-pkg/index.mjs
Did you mean to import happy-dom@2.55.0/node_modules/happy-dom/lib/index.js?
 ❯ new NodeError node:internal/errors:387:5
 ❯ packageResolve node:internal/modules/esm/resolve:852:9
 ❯ moduleResolve node:internal/modules/esm/resolve:901:20
 ❯ defaultResolve node:internal/modules/esm/resolve:1115:11
 ❯ nextResolve node:internal/modules/esm/loader:163:28
 ❯ ESMLoader.resolve node:internal/modules/esm/loader:837:30
 ❯ ESMLoader.getModuleJob node:internal/modules/esm/loader:424:18
 ❯ ESMLoader.import node:internal/modules/esm/loader:521:22
 ❯ importModuleDynamically node:internal/modules/esm/translators:110:35
 ❯ importModuleDynamicallyCallback node:internal/process/esm_loader:35:14

409 次点击
所在节点    问与答
2 条回复
grit136907108
300 天前
安装 happy-dom@2.55.0 看看
oppddd
300 天前
可以了,如果使用 pnpm 需要 hoist happay-dom

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/967137

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX